4coder-non-source/test_data/lots_of_files/amp_short_vectors.h

24179 lines
835 KiB
C++

/***
* ==++==
*
* Copyright (c) Microsoft Corporation. All rights reserved.
*
* ==--==
* =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+
*
* amp_short_vectors.h
*
* C++ AMP Short Vector Types
*
* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
****/
// !!! DO NOT HAND EDIT !!!
// This file was generated.
#pragma once
#pragma warning(push)
#pragma warning(disable : 4100)
#include <amp.h>
#define _AMP_SHORT_VECTORS_H
namespace Concurrency
{
namespace graphics
{
class unorm;
class norm;
/// <summary>
/// Represent a unorm number.
/// Each element is a floating point number in the range of [0.0f, 1.0f].
/// </summary>
class unorm
{
friend class norm;
private:
float _Value;
void _Set(float _Val) __CPU_ONLY
{
_Val = _Val < 0.0f ? 0.0f : _Val;
_Val = _Val > 1.0f ? 1.0f : _Val;
_Value = _Val;
}
void _Set(float _Val) __GPU_ONLY
{
_Value = Concurrency::direct3d::clamp(_Val, 0.0f, 1.0f);
}
public:
/// <summary>
/// Default constructor. Initialize to 0.0f.
/// </summary>
unorm(void) __GPU
{
_Value = 0.0f;
}
/// <summary>
/// Constructor. Initialize by clamping _V to the range of [0.0f, 1.0f].
/// </summary>
/// <param name="_V">
/// The value used to initialize.
/// </param>
explicit unorm(float _V) __GPU
{
_Set(_V);
}
/// <summary>
/// Constructor. Initialize by casting _V to float, then clamping to the range of [0.0f, 1.0f].
/// </summary>
/// <param name="_V">
/// The value used to initialize.
/// </param>
explicit unorm(unsigned int _V) __GPU
{
_Set(static_cast<float>(_V));
}
/// <summary>
/// Constructor. Initialize by casting _V to float, then clamping to the range of [0.0f, 1.0f].
/// </summary>
/// <param name="_V">
/// The value used to initialize.
/// </param>
explicit unorm(int _V) __GPU
{
_Set(static_cast<float>(_V));
}
/// <summary>
/// Constructor. Initialize by casting _V to float, then clamping to the range of [0.0f, 1.0f].
/// </summary>
/// <param name="_V">
/// The value used to initialize.
/// </param>
explicit unorm(double _V) __GPU
{
_Set(static_cast<float>(_V));
}
/// <summary>
/// Copy constructor.
/// </summary>
/// <param name="_Other">
/// The object to copy from.
/// </param>
unorm(const unorm& _Other) __GPU
{
_Value = _Other._Value;
}
/// <summary>
/// Constructor. Initialize by clamping _Other to the range of [0.0f, 1.0f].
/// </summary>
/// <param name="_Other">
/// The norm object used to initialize.
/// </param>
inline explicit unorm(const norm& _Other) __GPU;
unorm& operator=(const unorm& _Other) __GPU
{
_Value = _Other._Value;
return *this;
}
/// <summary>
/// Conversion operator. Convert the unorm number to a floating point value.
/// </summary>
operator float(void) const __GPU
{
return _Value;
}
unorm& operator+=(const unorm& _Other) __GPU
{
float _Res = _Value;
_Res += _Other._Value;
_Set(_Res);
return *this;
}
unorm& operator-=(const unorm& _Other) __GPU
{
float _Res = _Value;
_Res -= _Other._Value;
_Set(_Res);
return *this;
}
unorm& operator*=(const unorm& _Other) __GPU
{
float _Res = _Value;
_Res *= _Other._Value;
_Set(_Res);
return *this;
}
unorm& operator/=(const unorm& _Other) __GPU
{
float _Res = _Value;
_Res /= _Other._Value;
_Set(_Res);
return *this;
}
unorm& operator++() __GPU
{
float _Res = _Value;
++_Res;
_Set(_Res);
return *this;
}
unorm operator++(int) __GPU
{
unorm _Res = *this;
++(*this);
return _Res;
}
unorm& operator--() __GPU
{
float _Res = _Value;
--_Res;
_Set(_Res);
return *this;
}
unorm operator--(int) __GPU
{
unorm _Res = *this;
--(*this);
return _Res;
}
};
/// <summary>
/// Represent a norm number.
/// Each element is a floating point number in the range of [-1.0f, 1.0f].
/// </summary>
class norm
{
friend class unorm;
private:
float _Value;
void _Set(float _Val) __CPU_ONLY
{
_Val = _Val < -1.0f ? -1.0f : _Val;
_Val = _Val > 1.0f ? 1.0f : _Val;
_Value = _Val;
}
void _Set(float _Val) __GPU_ONLY
{
_Value = Concurrency::direct3d::clamp(_Val, -1.0f, 1.0f);
}
public:
/// <summary>
/// Default constructor. Initialize to 0.0f.
/// </summary>
norm(void) __GPU
{
_Value = 0.0f;
}
/// <summary>
/// Constructor. Initialize by clamping _V to the range of [-1.0f, 1.0f].
/// </summary>
/// <param name="_V">
/// The value used to initialize.
/// </param>
explicit norm(float _V) __GPU
{
_Set(_V);
}
/// <summary>
/// Constructor. Initialize by casting _V to float, then clamping to the range of [-1.0f, 1.0f].
/// </summary>
/// <param name="_V">
/// The value used to initialize.
/// </param>
explicit norm(unsigned int _V) __GPU
{
_Set(static_cast<float>(_V));
}
/// <summary>
/// Constructor. Initialize by casting _V to float, then clamping to the range of [-1.0f, 1.0f].
/// </summary>
/// <param name="_V">
/// The value used to initialize.
/// </param>
explicit norm(int _V) __GPU
{
_Set(static_cast<float>(_V));
}
/// <summary>
/// Constructor. Initialize by casting _V to float, then clamping to the range of [-1.0f, 1.0f].
/// </summary>
/// <param name="_V">
/// The value used to initialize.
/// </param>
explicit norm(double _V) __GPU
{
_Set(static_cast<float>(_V));
}
/// <summary>
/// Copy constructor.
/// </summary>
/// <param name="_Other">
/// The object to copy from.
/// </param>
norm(const norm& _Other) __GPU
{
_Value = _Other._Value;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
norm(const unorm& _Other) __GPU
{
_Value = _Other._Value;
}
norm& operator=(const norm& _Other) __GPU
{
_Value = _Other._Value;
return *this;
}
/// <summary>
/// Conversion operator. Convert the norm number to a floating point value.
/// </summary>
operator float(void) const __GPU
{
return _Value;
}
norm& operator+=(const norm& _Other) __GPU
{
float _Res = _Value;
_Res += _Other._Value;
_Set(_Res);
return *this;
}
norm& operator-=(const norm& _Other) __GPU
{
float _Res = _Value;
_Res -= _Other._Value;
_Set(_Res);
return *this;
}
norm& operator*=(const norm& _Other) __GPU
{
float _Res = _Value;
_Res *= _Other._Value;
_Set(_Res);
return *this;
}
norm& operator/=(const norm& _Other) __GPU
{
float _Res = _Value;
_Res /= _Other._Value;
_Set(_Res);
return *this;
}
norm& operator++() __GPU
{
float _Res = _Value;
++_Res;
_Set(_Res);
return *this;
}
norm operator++(int) __GPU
{
norm _Res = *this;
++(*this);
return _Res;
}
norm& operator--() __GPU
{
float _Res = _Value;
--_Res;
_Set(_Res);
return *this;
}
norm operator--(int) __GPU
{
norm _Res = *this;
--(*this);
return _Res;
}
norm operator-(void) const __GPU
{
norm _Ret;
_Ret._Value = -_Value;
return _Ret;
}
};
unorm::unorm(const norm& _Other) __GPU
{
_Set(_Other._Value);
}
inline unorm operator+(const unorm& _Lhs, const unorm& _Rhs) __GPU
{
return unorm(float(_Lhs) + float(_Rhs));
}
inline norm operator+(const norm& _Lhs, const norm& _Rhs) __GPU
{
return norm(float(_Lhs) + float(_Rhs));
}
inline unorm operator-(const unorm& _Lhs, const unorm& _Rhs) __GPU
{
return unorm(float(_Lhs) - float(_Rhs));
}
inline norm operator-(const norm& _Lhs, const norm& _Rhs) __GPU
{
return norm(float(_Lhs) - float(_Rhs));
}
inline unorm operator*(const unorm& _Lhs, const unorm& _Rhs) __GPU
{
return unorm(float(_Lhs) * float(_Rhs));
}
inline norm operator*(const norm& _Lhs, const norm& _Rhs) __GPU
{
return norm(float(_Lhs) * float(_Rhs));
}
inline unorm operator/(const unorm& _Lhs, const unorm& _Rhs) __GPU
{
return unorm(float(_Lhs) / float(_Rhs));
}
inline norm operator/(const norm& _Lhs, const norm& _Rhs) __GPU
{
return norm(float(_Lhs) / float(_Rhs));
}
inline bool operator==(const unorm& _Lhs, const unorm& _Rhs) __GPU
{
return float(_Lhs) == float(_Rhs);
}
inline bool operator==(const norm& _Lhs, const norm& _Rhs) __GPU
{
return float(_Lhs) == float(_Rhs);
}
inline bool operator!=(const unorm& _Lhs, const unorm& _Rhs) __GPU
{
return float(_Lhs) != float(_Rhs);
}
inline bool operator!=(const norm& _Lhs, const norm& _Rhs) __GPU
{
return float(_Lhs) != float(_Rhs);
}
inline bool operator>(const unorm& _Lhs, const unorm& _Rhs) __GPU
{
return float(_Lhs) > float(_Rhs);
}
inline bool operator>(const norm& _Lhs, const norm& _Rhs) __GPU
{
return float(_Lhs) > float(_Rhs);
}
inline bool operator<(const unorm& _Lhs, const unorm& _Rhs) __GPU
{
return float(_Lhs) < float(_Rhs);
}
inline bool operator<(const norm& _Lhs, const norm& _Rhs) __GPU
{
return float(_Lhs) < float(_Rhs);
}
inline bool operator>=(const unorm& _Lhs, const unorm& _Rhs) __GPU
{
return float(_Lhs) >= float(_Rhs);
}
inline bool operator>=(const norm& _Lhs, const norm& _Rhs) __GPU
{
return float(_Lhs) >= float(_Rhs);
}
inline bool operator<=(const unorm& _Lhs, const unorm& _Rhs) __GPU
{
return float(_Lhs) <= float(_Rhs);
}
inline bool operator<=(const norm& _Lhs, const norm& _Rhs) __GPU
{
return float(_Lhs) <= float(_Rhs);
}
#define UNORM_ZERO ((concurrency::graphics::unorm)0.0f)
#define UNORM_MIN ((concurrency::graphics::unorm)0.0f)
#define UNORM_MAX ((concurrency::graphics::unorm)1.0f)
#define NORM_ZERO ((concurrency::graphics::norm)0.0f)
#define NORM_MIN ((concurrency::graphics::norm)-1.0f)
#define NORM_MAX ((concurrency::graphics::norm)1.0f)
typedef unsigned int uint;
// Forward Declarations
class uint_2;
class uint_3;
class uint_4;
class int_2;
class int_3;
class int_4;
class float_2;
class float_3;
class float_4;
class unorm_2;
class unorm_3;
class unorm_4;
class norm_2;
class norm_3;
class norm_4;
class double_2;
class double_3;
class double_4;
/// <summary>
/// Represent a short vector of 2 unsigned int's.
/// </summary>
class uint_2
{
public:
typedef unsigned int value_type;
static const int size = 2;
private:
static const _Short_vector_base_type_id _Base_type_id = _Uint_type;
private:
value_type _M_x;
value_type _M_y;
public:
/// <summary>
/// Property for accessing element 0 of this uint_2 as an unsigned int.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) unsigned int x;
/// <summary>
/// Property for accessing element 0 of this uint_2 as an unsigned int.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) unsigned int r;
/// <summary>
/// Returns element 0 of this uint_2.
/// </summary>
/// <returns>
/// Element 0 of this uint_2.
/// </returns>
unsigned int get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this uint_2.
/// </summary>
/// <returns>
/// Reference to element 0 of this uint_2.
/// </returns>
unsigned int& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this uint_2.
/// </summary>
/// <returns>
/// Reference to element 0 of this uint_2.
/// </returns>
unsigned int& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this uint_2 with an unsigned int.
/// </summary>
/// <param name="_Value">
/// an unsigned int value.
/// </param>
void set_x(unsigned int _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this uint_2 as an unsigned int.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) unsigned int y;
/// <summary>
/// Property for accessing element 1 of this uint_2 as an unsigned int.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) unsigned int g;
/// <summary>
/// Returns element 1 of this uint_2.
/// </summary>
/// <returns>
/// Element 1 of this uint_2.
/// </returns>
unsigned int get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this uint_2.
/// </summary>
/// <returns>
/// Reference to element 1 of this uint_2.
/// </returns>
unsigned int& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this uint_2.
/// </summary>
/// <returns>
/// Reference to element 1 of this uint_2.
/// </returns>
unsigned int& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this uint_2 with an unsigned int.
/// </summary>
/// <param name="_Value">
/// an unsigned int value.
/// </param>
void set_y(unsigned int _Value) __GPU
{
_M_y = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
uint_2() __GPU
{
_M_x = 0;
_M_y = 0;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
uint_2(unsigned int _V0, unsigned int _V1) __GPU
{
_M_x = _V0;
_M_y = _V1;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
uint_2(unsigned int _V) __GPU
{
_M_x = _V;
_M_y = _V;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_2(const int_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_2(const float_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_2(const unorm_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_2(const norm_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_2(const double_2& _Other) __GPU;
uint_2 operator~() const __GPU
{
uint_2 _Value = *this;
return uint_2(~_Value.x, ~_Value.y);
}
uint_2& operator++() __GPU
{
uint_2 _Value = *this;
++_Value._M_x;
++_Value._M_y;
*this = _Value;
return *this;
}
uint_2 operator++(int) __GPU
{
uint_2 _Result = *this;
++(*this);
return _Result;
}
uint_2& operator--() __GPU
{
uint_2 _Value = *this;
--_Value._M_x;
--_Value._M_y;
*this = _Value;
return *this;
}
uint_2 operator--(int) __GPU
{
uint_2 _Result = *this;
--(*this);
return _Result;
}
uint_2& operator+=(const uint_2& _Other) __GPU
{
uint_2 _Value1 = *this;
uint_2 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
*this = _Value1;
return *this;
}
uint_2& operator-=(const uint_2& _Other) __GPU
{
uint_2 _Value1 = *this;
uint_2 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
*this = _Value1;
return *this;
}
uint_2& operator*=(const uint_2& _Other) __GPU
{
uint_2 _Value1 = *this;
uint_2 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
*this = _Value1;
return *this;
}
uint_2& operator/=(const uint_2& _Other) __GPU
{
uint_2 _Value1 = *this;
uint_2 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
*this = _Value1;
return *this;
}
uint_2& operator%=(const uint_2& _Other) __GPU
{
uint_2 _Value1 = *this;
uint_2 _Value2 = _Other;
_Value1.x %= _Value2.x;
_Value1.y %= _Value2.y;
*this = _Value1;
return *this;
}
uint_2& operator^=(const uint_2& _Other) __GPU
{
uint_2 _Value1 = *this;
uint_2 _Value2 = _Other;
_Value1.x ^= _Value2.x;
_Value1.y ^= _Value2.y;
*this = _Value1;
return *this;
}
uint_2& operator|=(const uint_2& _Other) __GPU
{
uint_2 _Value1 = *this;
uint_2 _Value2 = _Other;
_Value1.x |= _Value2.x;
_Value1.y |= _Value2.y;
*this = _Value1;
return *this;
}
uint_2& operator&=(const uint_2& _Other) __GPU
{
uint_2 _Value1 = *this;
uint_2 _Value2 = _Other;
_Value1.x &= _Value2.x;
_Value1.y &= _Value2.y;
*this = _Value1;
return *this;
}
uint_2& operator>>=(const uint_2& _Other) __GPU
{
uint_2 _Value1 = *this;
uint_2 _Value2 = _Other;
_Value1.x >>= _Value2.x;
_Value1.y >>= _Value2.y;
*this = _Value1;
return *this;
}
uint_2& operator<<=(const uint_2& _Other) __GPU
{
uint_2 _Value1 = *this;
uint_2 _Value2 = _Other;
_Value1.x <<= _Value2.x;
_Value1.y <<= _Value2.y;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this uint_2 as a uint_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) uint_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this uint_2 as a uint_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) uint_2 rg;
/// <summary>
/// Returns a uint_2 that is composed of element 0, and element 1 of this uint_2.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_xy() const __GPU {
return uint_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this uint_2 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_xy(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this uint_2 as a uint_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) uint_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this uint_2 as a uint_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) uint_2 gr;
/// <summary>
/// Returns a uint_2 that is composed of element 1, and element 0 of this uint_2.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_yx() const __GPU {
return uint_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this uint_2 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_yx(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
};
/// <summary>
/// Represent a short vector of 3 unsigned int's.
/// </summary>
class uint_3
{
public:
typedef unsigned int value_type;
static const int size = 3;
private:
static const _Short_vector_base_type_id _Base_type_id = _Uint_type;
private:
value_type _M_x;
value_type _M_y;
value_type _M_z;
public:
/// <summary>
/// Property for accessing element 0 of this uint_3 as an unsigned int.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) unsigned int x;
/// <summary>
/// Property for accessing element 0 of this uint_3 as an unsigned int.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) unsigned int r;
/// <summary>
/// Returns element 0 of this uint_3.
/// </summary>
/// <returns>
/// Element 0 of this uint_3.
/// </returns>
unsigned int get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this uint_3.
/// </summary>
/// <returns>
/// Reference to element 0 of this uint_3.
/// </returns>
unsigned int& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this uint_3.
/// </summary>
/// <returns>
/// Reference to element 0 of this uint_3.
/// </returns>
unsigned int& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this uint_3 with an unsigned int.
/// </summary>
/// <param name="_Value">
/// an unsigned int value.
/// </param>
void set_x(unsigned int _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this uint_3 as an unsigned int.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) unsigned int y;
/// <summary>
/// Property for accessing element 1 of this uint_3 as an unsigned int.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) unsigned int g;
/// <summary>
/// Returns element 1 of this uint_3.
/// </summary>
/// <returns>
/// Element 1 of this uint_3.
/// </returns>
unsigned int get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this uint_3.
/// </summary>
/// <returns>
/// Reference to element 1 of this uint_3.
/// </returns>
unsigned int& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this uint_3.
/// </summary>
/// <returns>
/// Reference to element 1 of this uint_3.
/// </returns>
unsigned int& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this uint_3 with an unsigned int.
/// </summary>
/// <param name="_Value">
/// an unsigned int value.
/// </param>
void set_y(unsigned int _Value) __GPU
{
_M_y = _Value;
}
/// <summary>
/// Property for accessing element 2 of this uint_3 as an unsigned int.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) unsigned int z;
/// <summary>
/// Property for accessing element 2 of this uint_3 as an unsigned int.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) unsigned int b;
/// <summary>
/// Returns element 2 of this uint_3.
/// </summary>
/// <returns>
/// Element 2 of this uint_3.
/// </returns>
unsigned int get_z() const __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this uint_3.
/// </summary>
/// <returns>
/// Reference to element 2 of this uint_3.
/// </returns>
unsigned int& ref_z() __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this uint_3.
/// </summary>
/// <returns>
/// Reference to element 2 of this uint_3.
/// </returns>
unsigned int& ref_b() __GPU {
return _M_z;
}
/// <summary>
/// Set element 2 of this uint_3 with an unsigned int.
/// </summary>
/// <param name="_Value">
/// an unsigned int value.
/// </param>
void set_z(unsigned int _Value) __GPU
{
_M_z = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
uint_3() __GPU
{
_M_x = 0;
_M_y = 0;
_M_z = 0;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
uint_3(unsigned int _V0, unsigned int _V1, unsigned int _V2) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
uint_3(unsigned int _V) __GPU
{
_M_x = _V;
_M_y = _V;
_M_z = _V;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_3(const int_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_3(const float_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_3(const unorm_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_3(const norm_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_3(const double_3& _Other) __GPU;
uint_3 operator~() const __GPU
{
uint_3 _Value = *this;
return uint_3(~_Value.x, ~_Value.y, ~_Value.z);
}
uint_3& operator++() __GPU
{
uint_3 _Value = *this;
++_Value._M_x;
++_Value._M_y;
++_Value._M_z;
*this = _Value;
return *this;
}
uint_3 operator++(int) __GPU
{
uint_3 _Result = *this;
++(*this);
return _Result;
}
uint_3& operator--() __GPU
{
uint_3 _Value = *this;
--_Value._M_x;
--_Value._M_y;
--_Value._M_z;
*this = _Value;
return *this;
}
uint_3 operator--(int) __GPU
{
uint_3 _Result = *this;
--(*this);
return _Result;
}
uint_3& operator+=(const uint_3& _Other) __GPU
{
uint_3 _Value1 = *this;
uint_3 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
_Value1.z += _Value2.z;
*this = _Value1;
return *this;
}
uint_3& operator-=(const uint_3& _Other) __GPU
{
uint_3 _Value1 = *this;
uint_3 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
_Value1.z -= _Value2.z;
*this = _Value1;
return *this;
}
uint_3& operator*=(const uint_3& _Other) __GPU
{
uint_3 _Value1 = *this;
uint_3 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
_Value1.z *= _Value2.z;
*this = _Value1;
return *this;
}
uint_3& operator/=(const uint_3& _Other) __GPU
{
uint_3 _Value1 = *this;
uint_3 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
_Value1.z /= _Value2.z;
*this = _Value1;
return *this;
}
uint_3& operator%=(const uint_3& _Other) __GPU
{
uint_3 _Value1 = *this;
uint_3 _Value2 = _Other;
_Value1.x %= _Value2.x;
_Value1.y %= _Value2.y;
_Value1.z %= _Value2.z;
*this = _Value1;
return *this;
}
uint_3& operator^=(const uint_3& _Other) __GPU
{
uint_3 _Value1 = *this;
uint_3 _Value2 = _Other;
_Value1.x ^= _Value2.x;
_Value1.y ^= _Value2.y;
_Value1.z ^= _Value2.z;
*this = _Value1;
return *this;
}
uint_3& operator|=(const uint_3& _Other) __GPU
{
uint_3 _Value1 = *this;
uint_3 _Value2 = _Other;
_Value1.x |= _Value2.x;
_Value1.y |= _Value2.y;
_Value1.z |= _Value2.z;
*this = _Value1;
return *this;
}
uint_3& operator&=(const uint_3& _Other) __GPU
{
uint_3 _Value1 = *this;
uint_3 _Value2 = _Other;
_Value1.x &= _Value2.x;
_Value1.y &= _Value2.y;
_Value1.z &= _Value2.z;
*this = _Value1;
return *this;
}
uint_3& operator>>=(const uint_3& _Other) __GPU
{
uint_3 _Value1 = *this;
uint_3 _Value2 = _Other;
_Value1.x >>= _Value2.x;
_Value1.y >>= _Value2.y;
_Value1.z >>= _Value2.z;
*this = _Value1;
return *this;
}
uint_3& operator<<=(const uint_3& _Other) __GPU
{
uint_3 _Value1 = *this;
uint_3 _Value2 = _Other;
_Value1.x <<= _Value2.x;
_Value1.y <<= _Value2.y;
_Value1.z <<= _Value2.z;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this uint_3 as a uint_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) uint_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this uint_3 as a uint_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) uint_2 rg;
/// <summary>
/// Returns a uint_2 that is composed of element 0, and element 1 of this uint_3.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_xy() const __GPU {
return uint_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this uint_3 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_xy(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 2 of this uint_3 as a uint_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) uint_2 xz;
/// <summary>
/// Property for accessing element 0, and 2 of this uint_3 as a uint_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) uint_2 rb;
/// <summary>
/// Returns a uint_2 that is composed of element 0, and element 2 of this uint_3.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_xz() const __GPU {
return uint_2(_M_x,_M_z);
}
/// <summary>
/// Set element 0, and 2 of this uint_3 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_xz(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this uint_3 as a uint_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) uint_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this uint_3 as a uint_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) uint_2 gr;
/// <summary>
/// Returns a uint_2 that is composed of element 1, and element 0 of this uint_3.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_yx() const __GPU {
return uint_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this uint_3 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_yx(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 2 of this uint_3 as a uint_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) uint_2 yz;
/// <summary>
/// Property for accessing element 1, and 2 of this uint_3 as a uint_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) uint_2 gb;
/// <summary>
/// Returns a uint_2 that is composed of element 1, and element 2 of this uint_3.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_yz() const __GPU {
return uint_2(_M_y,_M_z);
}
/// <summary>
/// Set element 1, and 2 of this uint_3 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_yz(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 0 of this uint_3 as a uint_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) uint_2 zx;
/// <summary>
/// Property for accessing element 2, and 0 of this uint_3 as a uint_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) uint_2 br;
/// <summary>
/// Returns a uint_2 that is composed of element 2, and element 0 of this uint_3.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_zx() const __GPU {
return uint_2(_M_z,_M_x);
}
/// <summary>
/// Set element 2, and 0 of this uint_3 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_zx(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 1 of this uint_3 as a uint_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) uint_2 zy;
/// <summary>
/// Property for accessing element 2, and 1 of this uint_3 as a uint_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) uint_2 bg;
/// <summary>
/// Returns a uint_2 that is composed of element 2, and element 1 of this uint_3.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_zy() const __GPU {
return uint_2(_M_z,_M_y);
}
/// <summary>
/// Set element 2, and 1 of this uint_3 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_zy(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, 1, and 2 of this uint_3 as a uint_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) uint_3 xyz;
/// <summary>
/// Property for accessing element 0, 1, and 2 of this uint_3 as a uint_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) uint_3 rgb;
/// <summary>
/// Returns a uint_3 that is composed of element 0, element 1, and element 2 of this uint_3.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_xyz() const __GPU {
return uint_3(_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 1, and 2 of this uint_3 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_xyz(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 1 of this uint_3 as a uint_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) uint_3 xzy;
/// <summary>
/// Property for accessing element 0, 2, and 1 of this uint_3 as a uint_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) uint_3 rbg;
/// <summary>
/// Returns a uint_3 that is composed of element 0, element 2, and element 1 of this uint_3.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_xzy() const __GPU {
return uint_3(_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 2, and 1 of this uint_3 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_xzy(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 2 of this uint_3 as a uint_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) uint_3 yxz;
/// <summary>
/// Property for accessing element 1, 0, and 2 of this uint_3 as a uint_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) uint_3 grb;
/// <summary>
/// Returns a uint_3 that is composed of element 1, element 0, and element 2 of this uint_3.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_yxz() const __GPU {
return uint_3(_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 0, and 2 of this uint_3 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_yxz(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 0 of this uint_3 as a uint_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) uint_3 yzx;
/// <summary>
/// Property for accessing element 1, 2, and 0 of this uint_3 as a uint_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) uint_3 gbr;
/// <summary>
/// Returns a uint_3 that is composed of element 1, element 2, and element 0 of this uint_3.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_yzx() const __GPU {
return uint_3(_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 2, and 0 of this uint_3 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_yzx(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 1 of this uint_3 as a uint_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) uint_3 zxy;
/// <summary>
/// Property for accessing element 2, 0, and 1 of this uint_3 as a uint_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) uint_3 brg;
/// <summary>
/// Returns a uint_3 that is composed of element 2, element 0, and element 1 of this uint_3.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_zxy() const __GPU {
return uint_3(_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 0, and 1 of this uint_3 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_zxy(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 0 of this uint_3 as a uint_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) uint_3 zyx;
/// <summary>
/// Property for accessing element 2, 1, and 0 of this uint_3 as a uint_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) uint_3 bgr;
/// <summary>
/// Returns a uint_3 that is composed of element 2, element 1, and element 0 of this uint_3.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_zyx() const __GPU {
return uint_3(_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 1, and 0 of this uint_3 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_zyx(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
};
/// <summary>
/// Represent a short vector of 4 unsigned int's.
/// </summary>
class uint_4
{
public:
typedef unsigned int value_type;
static const int size = 4;
private:
static const _Short_vector_base_type_id _Base_type_id = _Uint_type;
private:
value_type _M_x;
value_type _M_y;
value_type _M_z;
value_type _M_w;
public:
/// <summary>
/// Property for accessing element 0 of this uint_4 as an unsigned int.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) unsigned int x;
/// <summary>
/// Property for accessing element 0 of this uint_4 as an unsigned int.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) unsigned int r;
/// <summary>
/// Returns element 0 of this uint_4.
/// </summary>
/// <returns>
/// Element 0 of this uint_4.
/// </returns>
unsigned int get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this uint_4.
/// </summary>
/// <returns>
/// Reference to element 0 of this uint_4.
/// </returns>
unsigned int& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this uint_4.
/// </summary>
/// <returns>
/// Reference to element 0 of this uint_4.
/// </returns>
unsigned int& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this uint_4 with an unsigned int.
/// </summary>
/// <param name="_Value">
/// an unsigned int value.
/// </param>
void set_x(unsigned int _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this uint_4 as an unsigned int.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) unsigned int y;
/// <summary>
/// Property for accessing element 1 of this uint_4 as an unsigned int.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) unsigned int g;
/// <summary>
/// Returns element 1 of this uint_4.
/// </summary>
/// <returns>
/// Element 1 of this uint_4.
/// </returns>
unsigned int get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this uint_4.
/// </summary>
/// <returns>
/// Reference to element 1 of this uint_4.
/// </returns>
unsigned int& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this uint_4.
/// </summary>
/// <returns>
/// Reference to element 1 of this uint_4.
/// </returns>
unsigned int& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this uint_4 with an unsigned int.
/// </summary>
/// <param name="_Value">
/// an unsigned int value.
/// </param>
void set_y(unsigned int _Value) __GPU
{
_M_y = _Value;
}
/// <summary>
/// Property for accessing element 2 of this uint_4 as an unsigned int.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) unsigned int z;
/// <summary>
/// Property for accessing element 2 of this uint_4 as an unsigned int.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) unsigned int b;
/// <summary>
/// Returns element 2 of this uint_4.
/// </summary>
/// <returns>
/// Element 2 of this uint_4.
/// </returns>
unsigned int get_z() const __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this uint_4.
/// </summary>
/// <returns>
/// Reference to element 2 of this uint_4.
/// </returns>
unsigned int& ref_z() __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this uint_4.
/// </summary>
/// <returns>
/// Reference to element 2 of this uint_4.
/// </returns>
unsigned int& ref_b() __GPU {
return _M_z;
}
/// <summary>
/// Set element 2 of this uint_4 with an unsigned int.
/// </summary>
/// <param name="_Value">
/// an unsigned int value.
/// </param>
void set_z(unsigned int _Value) __GPU
{
_M_z = _Value;
}
/// <summary>
/// Property for accessing element 3 of this uint_4 as an unsigned int.
/// </summary>
__declspec( property( get=get_w, put=set_w) ) unsigned int w;
/// <summary>
/// Property for accessing element 3 of this uint_4 as an unsigned int.
/// </summary>
__declspec( property( get=get_w, put=set_w) ) unsigned int a;
/// <summary>
/// Returns element 3 of this uint_4.
/// </summary>
/// <returns>
/// Element 3 of this uint_4.
/// </returns>
unsigned int get_w() const __GPU {
return _M_w;
}
/// <summary>
/// Returns reference to element 3 of this uint_4.
/// </summary>
/// <returns>
/// Reference to element 3 of this uint_4.
/// </returns>
unsigned int& ref_w() __GPU {
return _M_w;
}
/// <summary>
/// Returns reference to element 3 of this uint_4.
/// </summary>
/// <returns>
/// Reference to element 3 of this uint_4.
/// </returns>
unsigned int& ref_a() __GPU {
return _M_w;
}
/// <summary>
/// Set element 3 of this uint_4 with an unsigned int.
/// </summary>
/// <param name="_Value">
/// an unsigned int value.
/// </param>
void set_w(unsigned int _Value) __GPU
{
_M_w = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
uint_4() __GPU
{
_M_x = 0;
_M_y = 0;
_M_z = 0;
_M_w = 0;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
/// <param name="_V3">
/// The value to initialize element 3.
/// </param>
uint_4(unsigned int _V0, unsigned int _V1, unsigned int _V2, unsigned int _V3) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
_M_w = _V3;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
uint_4(unsigned int _V) __GPU
{
_M_x = _V;
_M_y = _V;
_M_z = _V;
_M_w = _V;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_4(const int_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_4(const float_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_4(const unorm_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_4(const norm_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline uint_4(const double_4& _Other) __GPU;
uint_4 operator~() const __GPU
{
uint_4 _Value = *this;
return uint_4(~_Value.x, ~_Value.y, ~_Value.z, ~_Value.w);
}
uint_4& operator++() __GPU
{
uint_4 _Value = *this;
++_Value._M_x;
++_Value._M_y;
++_Value._M_z;
++_Value._M_w;
*this = _Value;
return *this;
}
uint_4 operator++(int) __GPU
{
uint_4 _Result = *this;
++(*this);
return _Result;
}
uint_4& operator--() __GPU
{
uint_4 _Value = *this;
--_Value._M_x;
--_Value._M_y;
--_Value._M_z;
--_Value._M_w;
*this = _Value;
return *this;
}
uint_4 operator--(int) __GPU
{
uint_4 _Result = *this;
--(*this);
return _Result;
}
uint_4& operator+=(const uint_4& _Other) __GPU
{
uint_4 _Value1 = *this;
uint_4 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
_Value1.z += _Value2.z;
_Value1.w += _Value2.w;
*this = _Value1;
return *this;
}
uint_4& operator-=(const uint_4& _Other) __GPU
{
uint_4 _Value1 = *this;
uint_4 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
_Value1.z -= _Value2.z;
_Value1.w -= _Value2.w;
*this = _Value1;
return *this;
}
uint_4& operator*=(const uint_4& _Other) __GPU
{
uint_4 _Value1 = *this;
uint_4 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
_Value1.z *= _Value2.z;
_Value1.w *= _Value2.w;
*this = _Value1;
return *this;
}
uint_4& operator/=(const uint_4& _Other) __GPU
{
uint_4 _Value1 = *this;
uint_4 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
_Value1.z /= _Value2.z;
_Value1.w /= _Value2.w;
*this = _Value1;
return *this;
}
uint_4& operator%=(const uint_4& _Other) __GPU
{
uint_4 _Value1 = *this;
uint_4 _Value2 = _Other;
_Value1.x %= _Value2.x;
_Value1.y %= _Value2.y;
_Value1.z %= _Value2.z;
_Value1.w %= _Value2.w;
*this = _Value1;
return *this;
}
uint_4& operator^=(const uint_4& _Other) __GPU
{
uint_4 _Value1 = *this;
uint_4 _Value2 = _Other;
_Value1.x ^= _Value2.x;
_Value1.y ^= _Value2.y;
_Value1.z ^= _Value2.z;
_Value1.w ^= _Value2.w;
*this = _Value1;
return *this;
}
uint_4& operator|=(const uint_4& _Other) __GPU
{
uint_4 _Value1 = *this;
uint_4 _Value2 = _Other;
_Value1.x |= _Value2.x;
_Value1.y |= _Value2.y;
_Value1.z |= _Value2.z;
_Value1.w |= _Value2.w;
*this = _Value1;
return *this;
}
uint_4& operator&=(const uint_4& _Other) __GPU
{
uint_4 _Value1 = *this;
uint_4 _Value2 = _Other;
_Value1.x &= _Value2.x;
_Value1.y &= _Value2.y;
_Value1.z &= _Value2.z;
_Value1.w &= _Value2.w;
*this = _Value1;
return *this;
}
uint_4& operator>>=(const uint_4& _Other) __GPU
{
uint_4 _Value1 = *this;
uint_4 _Value2 = _Other;
_Value1.x >>= _Value2.x;
_Value1.y >>= _Value2.y;
_Value1.z >>= _Value2.z;
_Value1.w >>= _Value2.w;
*this = _Value1;
return *this;
}
uint_4& operator<<=(const uint_4& _Other) __GPU
{
uint_4 _Value1 = *this;
uint_4 _Value2 = _Other;
_Value1.x <<= _Value2.x;
_Value1.y <<= _Value2.y;
_Value1.z <<= _Value2.z;
_Value1.w <<= _Value2.w;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) uint_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) uint_2 rg;
/// <summary>
/// Returns a uint_2 that is composed of element 0, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_xy() const __GPU {
return uint_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this uint_4 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_xy(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 2 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) uint_2 xz;
/// <summary>
/// Property for accessing element 0, and 2 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) uint_2 rb;
/// <summary>
/// Returns a uint_2 that is composed of element 0, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_xz() const __GPU {
return uint_2(_M_x,_M_z);
}
/// <summary>
/// Set element 0, and 2 of this uint_4 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_xz(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 3 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_xw, put=set_xw) ) uint_2 xw;
/// <summary>
/// Property for accessing element 0, and 3 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_xw, put=set_xw) ) uint_2 ra;
/// <summary>
/// Returns a uint_2 that is composed of element 0, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_xw() const __GPU {
return uint_2(_M_x,_M_w);
}
/// <summary>
/// Set element 0, and 3 of this uint_4 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_xw(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) uint_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) uint_2 gr;
/// <summary>
/// Returns a uint_2 that is composed of element 1, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_yx() const __GPU {
return uint_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this uint_4 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_yx(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 2 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) uint_2 yz;
/// <summary>
/// Property for accessing element 1, and 2 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) uint_2 gb;
/// <summary>
/// Returns a uint_2 that is composed of element 1, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_yz() const __GPU {
return uint_2(_M_y,_M_z);
}
/// <summary>
/// Set element 1, and 2 of this uint_4 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_yz(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 3 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_yw, put=set_yw) ) uint_2 yw;
/// <summary>
/// Property for accessing element 1, and 3 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_yw, put=set_yw) ) uint_2 ga;
/// <summary>
/// Returns a uint_2 that is composed of element 1, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_yw() const __GPU {
return uint_2(_M_y,_M_w);
}
/// <summary>
/// Set element 1, and 3 of this uint_4 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_yw(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 0 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) uint_2 zx;
/// <summary>
/// Property for accessing element 2, and 0 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) uint_2 br;
/// <summary>
/// Returns a uint_2 that is composed of element 2, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_zx() const __GPU {
return uint_2(_M_z,_M_x);
}
/// <summary>
/// Set element 2, and 0 of this uint_4 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_zx(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 1 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) uint_2 zy;
/// <summary>
/// Property for accessing element 2, and 1 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) uint_2 bg;
/// <summary>
/// Returns a uint_2 that is composed of element 2, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_zy() const __GPU {
return uint_2(_M_z,_M_y);
}
/// <summary>
/// Set element 2, and 1 of this uint_4 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_zy(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 3 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_zw, put=set_zw) ) uint_2 zw;
/// <summary>
/// Property for accessing element 2, and 3 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_zw, put=set_zw) ) uint_2 ba;
/// <summary>
/// Returns a uint_2 that is composed of element 2, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_zw() const __GPU {
return uint_2(_M_z,_M_w);
}
/// <summary>
/// Set element 2, and 3 of this uint_4 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_zw(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 0 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_wx, put=set_wx) ) uint_2 wx;
/// <summary>
/// Property for accessing element 3, and 0 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_wx, put=set_wx) ) uint_2 ar;
/// <summary>
/// Returns a uint_2 that is composed of element 3, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_wx() const __GPU {
return uint_2(_M_w,_M_x);
}
/// <summary>
/// Set element 3, and 0 of this uint_4 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_wx(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 1 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_wy, put=set_wy) ) uint_2 wy;
/// <summary>
/// Property for accessing element 3, and 1 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_wy, put=set_wy) ) uint_2 ag;
/// <summary>
/// Returns a uint_2 that is composed of element 3, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_wy() const __GPU {
return uint_2(_M_w,_M_y);
}
/// <summary>
/// Set element 3, and 1 of this uint_4 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_wy(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 2 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_wz, put=set_wz) ) uint_2 wz;
/// <summary>
/// Property for accessing element 3, and 2 of this uint_4 as a uint_2.
/// </summary>
__declspec( property( get=get_wz, put=set_wz) ) uint_2 ab;
/// <summary>
/// Returns a uint_2 that is composed of element 3, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_2.
/// </returns>
uint_2 get_wz() const __GPU {
return uint_2(_M_w,_M_z);
}
/// <summary>
/// Set element 3, and 2 of this uint_4 with a uint_2.
/// </summary>
/// <param name="_Value">
/// a uint_2 value.
/// </param>
void set_wz(const uint_2& _Value) __GPU
{
uint_2 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 0, 1, and 2 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) uint_3 xyz;
/// <summary>
/// Property for accessing element 0, 1, and 2 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) uint_3 rgb;
/// <summary>
/// Returns a uint_3 that is composed of element 0, element 1, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_xyz() const __GPU {
return uint_3(_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 1, and 2 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_xyz(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 1, and 3 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_xyw, put=set_xyw) ) uint_3 xyw;
/// <summary>
/// Property for accessing element 0, 1, and 3 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_xyw, put=set_xyw) ) uint_3 rga;
/// <summary>
/// Returns a uint_3 that is composed of element 0, element 1, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_xyw() const __GPU {
return uint_3(_M_x,_M_y,_M_w);
}
/// <summary>
/// Set element 0, 1, and 3 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_xyw(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 1 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) uint_3 xzy;
/// <summary>
/// Property for accessing element 0, 2, and 1 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) uint_3 rbg;
/// <summary>
/// Returns a uint_3 that is composed of element 0, element 2, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_xzy() const __GPU {
return uint_3(_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 2, and 1 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_xzy(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 3 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_xzw, put=set_xzw) ) uint_3 xzw;
/// <summary>
/// Property for accessing element 0, 2, and 3 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_xzw, put=set_xzw) ) uint_3 rba;
/// <summary>
/// Returns a uint_3 that is composed of element 0, element 2, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_xzw() const __GPU {
return uint_3(_M_x,_M_z,_M_w);
}
/// <summary>
/// Set element 0, 2, and 3 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_xzw(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 3, and 1 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_xwy, put=set_xwy) ) uint_3 xwy;
/// <summary>
/// Property for accessing element 0, 3, and 1 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_xwy, put=set_xwy) ) uint_3 rag;
/// <summary>
/// Returns a uint_3 that is composed of element 0, element 3, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_xwy() const __GPU {
return uint_3(_M_x,_M_w,_M_y);
}
/// <summary>
/// Set element 0, 3, and 1 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_xwy(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 3, and 2 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_xwz, put=set_xwz) ) uint_3 xwz;
/// <summary>
/// Property for accessing element 0, 3, and 2 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_xwz, put=set_xwz) ) uint_3 rab;
/// <summary>
/// Returns a uint_3 that is composed of element 0, element 3, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_xwz() const __GPU {
return uint_3(_M_x,_M_w,_M_z);
}
/// <summary>
/// Set element 0, 3, and 2 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_xwz(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 2 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) uint_3 yxz;
/// <summary>
/// Property for accessing element 1, 0, and 2 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) uint_3 grb;
/// <summary>
/// Returns a uint_3 that is composed of element 1, element 0, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_yxz() const __GPU {
return uint_3(_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 0, and 2 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_yxz(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 3 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_yxw, put=set_yxw) ) uint_3 yxw;
/// <summary>
/// Property for accessing element 1, 0, and 3 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_yxw, put=set_yxw) ) uint_3 gra;
/// <summary>
/// Returns a uint_3 that is composed of element 1, element 0, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_yxw() const __GPU {
return uint_3(_M_y,_M_x,_M_w);
}
/// <summary>
/// Set element 1, 0, and 3 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_yxw(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 0 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) uint_3 yzx;
/// <summary>
/// Property for accessing element 1, 2, and 0 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) uint_3 gbr;
/// <summary>
/// Returns a uint_3 that is composed of element 1, element 2, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_yzx() const __GPU {
return uint_3(_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 2, and 0 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_yzx(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 3 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_yzw, put=set_yzw) ) uint_3 yzw;
/// <summary>
/// Property for accessing element 1, 2, and 3 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_yzw, put=set_yzw) ) uint_3 gba;
/// <summary>
/// Returns a uint_3 that is composed of element 1, element 2, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_yzw() const __GPU {
return uint_3(_M_y,_M_z,_M_w);
}
/// <summary>
/// Set element 1, 2, and 3 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_yzw(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 3, and 0 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_ywx, put=set_ywx) ) uint_3 ywx;
/// <summary>
/// Property for accessing element 1, 3, and 0 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_ywx, put=set_ywx) ) uint_3 gar;
/// <summary>
/// Returns a uint_3 that is composed of element 1, element 3, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_ywx() const __GPU {
return uint_3(_M_y,_M_w,_M_x);
}
/// <summary>
/// Set element 1, 3, and 0 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_ywx(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 3, and 2 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_ywz, put=set_ywz) ) uint_3 ywz;
/// <summary>
/// Property for accessing element 1, 3, and 2 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_ywz, put=set_ywz) ) uint_3 gab;
/// <summary>
/// Returns a uint_3 that is composed of element 1, element 3, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_ywz() const __GPU {
return uint_3(_M_y,_M_w,_M_z);
}
/// <summary>
/// Set element 1, 3, and 2 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_ywz(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 1 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) uint_3 zxy;
/// <summary>
/// Property for accessing element 2, 0, and 1 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) uint_3 brg;
/// <summary>
/// Returns a uint_3 that is composed of element 2, element 0, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_zxy() const __GPU {
return uint_3(_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 0, and 1 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_zxy(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 3 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_zxw, put=set_zxw) ) uint_3 zxw;
/// <summary>
/// Property for accessing element 2, 0, and 3 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_zxw, put=set_zxw) ) uint_3 bra;
/// <summary>
/// Returns a uint_3 that is composed of element 2, element 0, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_zxw() const __GPU {
return uint_3(_M_z,_M_x,_M_w);
}
/// <summary>
/// Set element 2, 0, and 3 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_zxw(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 0 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) uint_3 zyx;
/// <summary>
/// Property for accessing element 2, 1, and 0 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) uint_3 bgr;
/// <summary>
/// Returns a uint_3 that is composed of element 2, element 1, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_zyx() const __GPU {
return uint_3(_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 1, and 0 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_zyx(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 3 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_zyw, put=set_zyw) ) uint_3 zyw;
/// <summary>
/// Property for accessing element 2, 1, and 3 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_zyw, put=set_zyw) ) uint_3 bga;
/// <summary>
/// Returns a uint_3 that is composed of element 2, element 1, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_zyw() const __GPU {
return uint_3(_M_z,_M_y,_M_w);
}
/// <summary>
/// Set element 2, 1, and 3 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_zyw(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 3, and 0 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_zwx, put=set_zwx) ) uint_3 zwx;
/// <summary>
/// Property for accessing element 2, 3, and 0 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_zwx, put=set_zwx) ) uint_3 bar;
/// <summary>
/// Returns a uint_3 that is composed of element 2, element 3, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_zwx() const __GPU {
return uint_3(_M_z,_M_w,_M_x);
}
/// <summary>
/// Set element 2, 3, and 0 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_zwx(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 3, and 1 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_zwy, put=set_zwy) ) uint_3 zwy;
/// <summary>
/// Property for accessing element 2, 3, and 1 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_zwy, put=set_zwy) ) uint_3 bag;
/// <summary>
/// Returns a uint_3 that is composed of element 2, element 3, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_zwy() const __GPU {
return uint_3(_M_z,_M_w,_M_y);
}
/// <summary>
/// Set element 2, 3, and 1 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_zwy(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 0, and 1 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_wxy, put=set_wxy) ) uint_3 wxy;
/// <summary>
/// Property for accessing element 3, 0, and 1 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_wxy, put=set_wxy) ) uint_3 arg;
/// <summary>
/// Returns a uint_3 that is composed of element 3, element 0, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_wxy() const __GPU {
return uint_3(_M_w,_M_x,_M_y);
}
/// <summary>
/// Set element 3, 0, and 1 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_wxy(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 0, and 2 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_wxz, put=set_wxz) ) uint_3 wxz;
/// <summary>
/// Property for accessing element 3, 0, and 2 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_wxz, put=set_wxz) ) uint_3 arb;
/// <summary>
/// Returns a uint_3 that is composed of element 3, element 0, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_wxz() const __GPU {
return uint_3(_M_w,_M_x,_M_z);
}
/// <summary>
/// Set element 3, 0, and 2 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_wxz(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 1, and 0 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_wyx, put=set_wyx) ) uint_3 wyx;
/// <summary>
/// Property for accessing element 3, 1, and 0 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_wyx, put=set_wyx) ) uint_3 agr;
/// <summary>
/// Returns a uint_3 that is composed of element 3, element 1, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_wyx() const __GPU {
return uint_3(_M_w,_M_y,_M_x);
}
/// <summary>
/// Set element 3, 1, and 0 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_wyx(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 1, and 2 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_wyz, put=set_wyz) ) uint_3 wyz;
/// <summary>
/// Property for accessing element 3, 1, and 2 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_wyz, put=set_wyz) ) uint_3 agb;
/// <summary>
/// Returns a uint_3 that is composed of element 3, element 1, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_wyz() const __GPU {
return uint_3(_M_w,_M_y,_M_z);
}
/// <summary>
/// Set element 3, 1, and 2 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_wyz(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 2, and 0 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_wzx, put=set_wzx) ) uint_3 wzx;
/// <summary>
/// Property for accessing element 3, 2, and 0 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_wzx, put=set_wzx) ) uint_3 abr;
/// <summary>
/// Returns a uint_3 that is composed of element 3, element 2, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_wzx() const __GPU {
return uint_3(_M_w,_M_z,_M_x);
}
/// <summary>
/// Set element 3, 2, and 0 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_wzx(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 2, and 1 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_wzy, put=set_wzy) ) uint_3 wzy;
/// <summary>
/// Property for accessing element 3, 2, and 1 of this uint_4 as a uint_3.
/// </summary>
__declspec( property( get=get_wzy, put=set_wzy) ) uint_3 abg;
/// <summary>
/// Returns a uint_3 that is composed of element 3, element 2, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_3.
/// </returns>
uint_3 get_wzy() const __GPU {
return uint_3(_M_w,_M_z,_M_y);
}
/// <summary>
/// Set element 3, 2, and 1 of this uint_4 with a uint_3.
/// </summary>
/// <param name="_Value">
/// a uint_3 value.
/// </param>
void set_wzy(const uint_3& _Value) __GPU
{
uint_3 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 1, 2, and 3 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_xyzw, put=set_xyzw) ) uint_4 xyzw;
/// <summary>
/// Property for accessing element 0, 1, 2, and 3 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_xyzw, put=set_xyzw) ) uint_4 rgba;
/// <summary>
/// Returns a uint_4 that is composed of element 0, element 1, element 2, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_xyzw() const __GPU {
return uint_4(_M_x,_M_y,_M_z,_M_w);
}
/// <summary>
/// Set element 0, 1, 2, and 3 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_xyzw(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 1, 3, and 2 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_xywz, put=set_xywz) ) uint_4 xywz;
/// <summary>
/// Property for accessing element 0, 1, 3, and 2 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_xywz, put=set_xywz) ) uint_4 rgab;
/// <summary>
/// Returns a uint_4 that is composed of element 0, element 1, element 3, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_xywz() const __GPU {
return uint_4(_M_x,_M_y,_M_w,_M_z);
}
/// <summary>
/// Set element 0, 1, 3, and 2 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_xywz(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 2, 1, and 3 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_xzyw, put=set_xzyw) ) uint_4 xzyw;
/// <summary>
/// Property for accessing element 0, 2, 1, and 3 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_xzyw, put=set_xzyw) ) uint_4 rbga;
/// <summary>
/// Returns a uint_4 that is composed of element 0, element 2, element 1, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_xzyw() const __GPU {
return uint_4(_M_x,_M_z,_M_y,_M_w);
}
/// <summary>
/// Set element 0, 2, 1, and 3 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_xzyw(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 2, 3, and 1 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_xzwy, put=set_xzwy) ) uint_4 xzwy;
/// <summary>
/// Property for accessing element 0, 2, 3, and 1 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_xzwy, put=set_xzwy) ) uint_4 rbag;
/// <summary>
/// Returns a uint_4 that is composed of element 0, element 2, element 3, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_xzwy() const __GPU {
return uint_4(_M_x,_M_z,_M_w,_M_y);
}
/// <summary>
/// Set element 0, 2, 3, and 1 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_xzwy(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 3, 1, and 2 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_xwyz, put=set_xwyz) ) uint_4 xwyz;
/// <summary>
/// Property for accessing element 0, 3, 1, and 2 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_xwyz, put=set_xwyz) ) uint_4 ragb;
/// <summary>
/// Returns a uint_4 that is composed of element 0, element 3, element 1, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_xwyz() const __GPU {
return uint_4(_M_x,_M_w,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 3, 1, and 2 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_xwyz(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 3, 2, and 1 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_xwzy, put=set_xwzy) ) uint_4 xwzy;
/// <summary>
/// Property for accessing element 0, 3, 2, and 1 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_xwzy, put=set_xwzy) ) uint_4 rabg;
/// <summary>
/// Returns a uint_4 that is composed of element 0, element 3, element 2, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_xwzy() const __GPU {
return uint_4(_M_x,_M_w,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 3, 2, and 1 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_xwzy(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 0, 2, and 3 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_yxzw, put=set_yxzw) ) uint_4 yxzw;
/// <summary>
/// Property for accessing element 1, 0, 2, and 3 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_yxzw, put=set_yxzw) ) uint_4 grba;
/// <summary>
/// Returns a uint_4 that is composed of element 1, element 0, element 2, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_yxzw() const __GPU {
return uint_4(_M_y,_M_x,_M_z,_M_w);
}
/// <summary>
/// Set element 1, 0, 2, and 3 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_yxzw(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 0, 3, and 2 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_yxwz, put=set_yxwz) ) uint_4 yxwz;
/// <summary>
/// Property for accessing element 1, 0, 3, and 2 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_yxwz, put=set_yxwz) ) uint_4 grab;
/// <summary>
/// Returns a uint_4 that is composed of element 1, element 0, element 3, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_yxwz() const __GPU {
return uint_4(_M_y,_M_x,_M_w,_M_z);
}
/// <summary>
/// Set element 1, 0, 3, and 2 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_yxwz(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 2, 0, and 3 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_yzxw, put=set_yzxw) ) uint_4 yzxw;
/// <summary>
/// Property for accessing element 1, 2, 0, and 3 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_yzxw, put=set_yzxw) ) uint_4 gbra;
/// <summary>
/// Returns a uint_4 that is composed of element 1, element 2, element 0, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_yzxw() const __GPU {
return uint_4(_M_y,_M_z,_M_x,_M_w);
}
/// <summary>
/// Set element 1, 2, 0, and 3 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_yzxw(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 2, 3, and 0 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_yzwx, put=set_yzwx) ) uint_4 yzwx;
/// <summary>
/// Property for accessing element 1, 2, 3, and 0 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_yzwx, put=set_yzwx) ) uint_4 gbar;
/// <summary>
/// Returns a uint_4 that is composed of element 1, element 2, element 3, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_yzwx() const __GPU {
return uint_4(_M_y,_M_z,_M_w,_M_x);
}
/// <summary>
/// Set element 1, 2, 3, and 0 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_yzwx(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 3, 0, and 2 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_ywxz, put=set_ywxz) ) uint_4 ywxz;
/// <summary>
/// Property for accessing element 1, 3, 0, and 2 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_ywxz, put=set_ywxz) ) uint_4 garb;
/// <summary>
/// Returns a uint_4 that is composed of element 1, element 3, element 0, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_ywxz() const __GPU {
return uint_4(_M_y,_M_w,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 3, 0, and 2 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_ywxz(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 3, 2, and 0 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_ywzx, put=set_ywzx) ) uint_4 ywzx;
/// <summary>
/// Property for accessing element 1, 3, 2, and 0 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_ywzx, put=set_ywzx) ) uint_4 gabr;
/// <summary>
/// Returns a uint_4 that is composed of element 1, element 3, element 2, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_ywzx() const __GPU {
return uint_4(_M_y,_M_w,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 3, 2, and 0 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_ywzx(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 0, 1, and 3 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_zxyw, put=set_zxyw) ) uint_4 zxyw;
/// <summary>
/// Property for accessing element 2, 0, 1, and 3 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_zxyw, put=set_zxyw) ) uint_4 brga;
/// <summary>
/// Returns a uint_4 that is composed of element 2, element 0, element 1, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_zxyw() const __GPU {
return uint_4(_M_z,_M_x,_M_y,_M_w);
}
/// <summary>
/// Set element 2, 0, 1, and 3 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_zxyw(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 0, 3, and 1 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_zxwy, put=set_zxwy) ) uint_4 zxwy;
/// <summary>
/// Property for accessing element 2, 0, 3, and 1 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_zxwy, put=set_zxwy) ) uint_4 brag;
/// <summary>
/// Returns a uint_4 that is composed of element 2, element 0, element 3, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_zxwy() const __GPU {
return uint_4(_M_z,_M_x,_M_w,_M_y);
}
/// <summary>
/// Set element 2, 0, 3, and 1 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_zxwy(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 1, 0, and 3 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_zyxw, put=set_zyxw) ) uint_4 zyxw;
/// <summary>
/// Property for accessing element 2, 1, 0, and 3 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_zyxw, put=set_zyxw) ) uint_4 bgra;
/// <summary>
/// Returns a uint_4 that is composed of element 2, element 1, element 0, and element 3 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_zyxw() const __GPU {
return uint_4(_M_z,_M_y,_M_x,_M_w);
}
/// <summary>
/// Set element 2, 1, 0, and 3 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_zyxw(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 1, 3, and 0 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_zywx, put=set_zywx) ) uint_4 zywx;
/// <summary>
/// Property for accessing element 2, 1, 3, and 0 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_zywx, put=set_zywx) ) uint_4 bgar;
/// <summary>
/// Returns a uint_4 that is composed of element 2, element 1, element 3, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_zywx() const __GPU {
return uint_4(_M_z,_M_y,_M_w,_M_x);
}
/// <summary>
/// Set element 2, 1, 3, and 0 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_zywx(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 3, 0, and 1 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_zwxy, put=set_zwxy) ) uint_4 zwxy;
/// <summary>
/// Property for accessing element 2, 3, 0, and 1 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_zwxy, put=set_zwxy) ) uint_4 barg;
/// <summary>
/// Returns a uint_4 that is composed of element 2, element 3, element 0, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_zwxy() const __GPU {
return uint_4(_M_z,_M_w,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 3, 0, and 1 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_zwxy(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 3, 1, and 0 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_zwyx, put=set_zwyx) ) uint_4 zwyx;
/// <summary>
/// Property for accessing element 2, 3, 1, and 0 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_zwyx, put=set_zwyx) ) uint_4 bagr;
/// <summary>
/// Returns a uint_4 that is composed of element 2, element 3, element 1, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_zwyx() const __GPU {
return uint_4(_M_z,_M_w,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 3, 1, and 0 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_zwyx(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 0, 1, and 2 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_wxyz, put=set_wxyz) ) uint_4 wxyz;
/// <summary>
/// Property for accessing element 3, 0, 1, and 2 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_wxyz, put=set_wxyz) ) uint_4 argb;
/// <summary>
/// Returns a uint_4 that is composed of element 3, element 0, element 1, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_wxyz() const __GPU {
return uint_4(_M_w,_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 3, 0, 1, and 2 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_wxyz(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 0, 2, and 1 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_wxzy, put=set_wxzy) ) uint_4 wxzy;
/// <summary>
/// Property for accessing element 3, 0, 2, and 1 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_wxzy, put=set_wxzy) ) uint_4 arbg;
/// <summary>
/// Returns a uint_4 that is composed of element 3, element 0, element 2, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_wxzy() const __GPU {
return uint_4(_M_w,_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 3, 0, 2, and 1 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_wxzy(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 1, 0, and 2 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_wyxz, put=set_wyxz) ) uint_4 wyxz;
/// <summary>
/// Property for accessing element 3, 1, 0, and 2 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_wyxz, put=set_wyxz) ) uint_4 agrb;
/// <summary>
/// Returns a uint_4 that is composed of element 3, element 1, element 0, and element 2 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_wyxz() const __GPU {
return uint_4(_M_w,_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 3, 1, 0, and 2 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_wyxz(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 1, 2, and 0 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_wyzx, put=set_wyzx) ) uint_4 wyzx;
/// <summary>
/// Property for accessing element 3, 1, 2, and 0 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_wyzx, put=set_wyzx) ) uint_4 agbr;
/// <summary>
/// Returns a uint_4 that is composed of element 3, element 1, element 2, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_wyzx() const __GPU {
return uint_4(_M_w,_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 3, 1, 2, and 0 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_wyzx(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 2, 0, and 1 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_wzxy, put=set_wzxy) ) uint_4 wzxy;
/// <summary>
/// Property for accessing element 3, 2, 0, and 1 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_wzxy, put=set_wzxy) ) uint_4 abrg;
/// <summary>
/// Returns a uint_4 that is composed of element 3, element 2, element 0, and element 1 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_wzxy() const __GPU {
return uint_4(_M_w,_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 3, 2, 0, and 1 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_wzxy(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 2, 1, and 0 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_wzyx, put=set_wzyx) ) uint_4 wzyx;
/// <summary>
/// Property for accessing element 3, 2, 1, and 0 of this uint_4 as a uint_4.
/// </summary>
__declspec( property( get=get_wzyx, put=set_wzyx) ) uint_4 abgr;
/// <summary>
/// Returns a uint_4 that is composed of element 3, element 2, element 1, and element 0 of this uint_4.
/// </summary>
/// <returns>
/// a uint_4.
/// </returns>
uint_4 get_wzyx() const __GPU {
return uint_4(_M_w,_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 3, 2, 1, and 0 of this uint_4 with a uint_4.
/// </summary>
/// <param name="_Value">
/// a uint_4 value.
/// </param>
void set_wzyx(const uint_4& _Value) __GPU
{
uint_4 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
_M_x = _Val.w;
}
};
/// <summary>
/// Represent a short vector of 2 int's.
/// </summary>
class int_2
{
public:
typedef int value_type;
static const int size = 2;
private:
static const _Short_vector_base_type_id _Base_type_id = _Int_type;
private:
value_type _M_x;
value_type _M_y;
public:
/// <summary>
/// Property for accessing element 0 of this int_2 as an int.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) int x;
/// <summary>
/// Property for accessing element 0 of this int_2 as an int.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) int r;
/// <summary>
/// Returns element 0 of this int_2.
/// </summary>
/// <returns>
/// Element 0 of this int_2.
/// </returns>
int get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this int_2.
/// </summary>
/// <returns>
/// Reference to element 0 of this int_2.
/// </returns>
int& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this int_2.
/// </summary>
/// <returns>
/// Reference to element 0 of this int_2.
/// </returns>
int& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this int_2 with an int.
/// </summary>
/// <param name="_Value">
/// an int value.
/// </param>
void set_x(int _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this int_2 as an int.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) int y;
/// <summary>
/// Property for accessing element 1 of this int_2 as an int.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) int g;
/// <summary>
/// Returns element 1 of this int_2.
/// </summary>
/// <returns>
/// Element 1 of this int_2.
/// </returns>
int get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this int_2.
/// </summary>
/// <returns>
/// Reference to element 1 of this int_2.
/// </returns>
int& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this int_2.
/// </summary>
/// <returns>
/// Reference to element 1 of this int_2.
/// </returns>
int& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this int_2 with an int.
/// </summary>
/// <param name="_Value">
/// an int value.
/// </param>
void set_y(int _Value) __GPU
{
_M_y = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
int_2() __GPU
{
_M_x = 0;
_M_y = 0;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
int_2(int _V0, int _V1) __GPU
{
_M_x = _V0;
_M_y = _V1;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
int_2(int _V) __GPU
{
_M_x = _V;
_M_y = _V;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_2(const uint_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_2(const float_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_2(const unorm_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_2(const norm_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_2(const double_2& _Other) __GPU;
int_2 operator~() const __GPU
{
int_2 _Value = *this;
return int_2(~_Value.x, ~_Value.y);
}
int_2 operator-() const __GPU
{
int_2 _Value = *this;
return int_2(-_Value.x, -_Value.y);
}
int_2& operator++() __GPU
{
int_2 _Value = *this;
++_Value._M_x;
++_Value._M_y;
*this = _Value;
return *this;
}
int_2 operator++(int) __GPU
{
int_2 _Result = *this;
++(*this);
return _Result;
}
int_2& operator--() __GPU
{
int_2 _Value = *this;
--_Value._M_x;
--_Value._M_y;
*this = _Value;
return *this;
}
int_2 operator--(int) __GPU
{
int_2 _Result = *this;
--(*this);
return _Result;
}
int_2& operator+=(const int_2& _Other) __GPU
{
int_2 _Value1 = *this;
int_2 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
*this = _Value1;
return *this;
}
int_2& operator-=(const int_2& _Other) __GPU
{
int_2 _Value1 = *this;
int_2 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
*this = _Value1;
return *this;
}
int_2& operator*=(const int_2& _Other) __GPU
{
int_2 _Value1 = *this;
int_2 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
*this = _Value1;
return *this;
}
int_2& operator/=(const int_2& _Other) __GPU
{
int_2 _Value1 = *this;
int_2 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
*this = _Value1;
return *this;
}
int_2& operator%=(const int_2& _Other) __GPU
{
int_2 _Value1 = *this;
int_2 _Value2 = _Other;
_Value1.x %= _Value2.x;
_Value1.y %= _Value2.y;
*this = _Value1;
return *this;
}
int_2& operator^=(const int_2& _Other) __GPU
{
int_2 _Value1 = *this;
int_2 _Value2 = _Other;
_Value1.x ^= _Value2.x;
_Value1.y ^= _Value2.y;
*this = _Value1;
return *this;
}
int_2& operator|=(const int_2& _Other) __GPU
{
int_2 _Value1 = *this;
int_2 _Value2 = _Other;
_Value1.x |= _Value2.x;
_Value1.y |= _Value2.y;
*this = _Value1;
return *this;
}
int_2& operator&=(const int_2& _Other) __GPU
{
int_2 _Value1 = *this;
int_2 _Value2 = _Other;
_Value1.x &= _Value2.x;
_Value1.y &= _Value2.y;
*this = _Value1;
return *this;
}
int_2& operator>>=(const int_2& _Other) __GPU
{
int_2 _Value1 = *this;
int_2 _Value2 = _Other;
_Value1.x >>= _Value2.x;
_Value1.y >>= _Value2.y;
*this = _Value1;
return *this;
}
int_2& operator<<=(const int_2& _Other) __GPU
{
int_2 _Value1 = *this;
int_2 _Value2 = _Other;
_Value1.x <<= _Value2.x;
_Value1.y <<= _Value2.y;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this int_2 as an int_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) int_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this int_2 as an int_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) int_2 rg;
/// <summary>
/// Returns an int_2 that is composed of element 0, and element 1 of this int_2.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_xy() const __GPU {
return int_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this int_2 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_xy(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this int_2 as an int_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) int_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this int_2 as an int_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) int_2 gr;
/// <summary>
/// Returns an int_2 that is composed of element 1, and element 0 of this int_2.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_yx() const __GPU {
return int_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this int_2 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_yx(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
};
/// <summary>
/// Represent a short vector of 3 int's.
/// </summary>
class int_3
{
public:
typedef int value_type;
static const int size = 3;
private:
static const _Short_vector_base_type_id _Base_type_id = _Int_type;
private:
value_type _M_x;
value_type _M_y;
value_type _M_z;
public:
/// <summary>
/// Property for accessing element 0 of this int_3 as an int.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) int x;
/// <summary>
/// Property for accessing element 0 of this int_3 as an int.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) int r;
/// <summary>
/// Returns element 0 of this int_3.
/// </summary>
/// <returns>
/// Element 0 of this int_3.
/// </returns>
int get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this int_3.
/// </summary>
/// <returns>
/// Reference to element 0 of this int_3.
/// </returns>
int& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this int_3.
/// </summary>
/// <returns>
/// Reference to element 0 of this int_3.
/// </returns>
int& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this int_3 with an int.
/// </summary>
/// <param name="_Value">
/// an int value.
/// </param>
void set_x(int _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this int_3 as an int.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) int y;
/// <summary>
/// Property for accessing element 1 of this int_3 as an int.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) int g;
/// <summary>
/// Returns element 1 of this int_3.
/// </summary>
/// <returns>
/// Element 1 of this int_3.
/// </returns>
int get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this int_3.
/// </summary>
/// <returns>
/// Reference to element 1 of this int_3.
/// </returns>
int& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this int_3.
/// </summary>
/// <returns>
/// Reference to element 1 of this int_3.
/// </returns>
int& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this int_3 with an int.
/// </summary>
/// <param name="_Value">
/// an int value.
/// </param>
void set_y(int _Value) __GPU
{
_M_y = _Value;
}
/// <summary>
/// Property for accessing element 2 of this int_3 as an int.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) int z;
/// <summary>
/// Property for accessing element 2 of this int_3 as an int.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) int b;
/// <summary>
/// Returns element 2 of this int_3.
/// </summary>
/// <returns>
/// Element 2 of this int_3.
/// </returns>
int get_z() const __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this int_3.
/// </summary>
/// <returns>
/// Reference to element 2 of this int_3.
/// </returns>
int& ref_z() __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this int_3.
/// </summary>
/// <returns>
/// Reference to element 2 of this int_3.
/// </returns>
int& ref_b() __GPU {
return _M_z;
}
/// <summary>
/// Set element 2 of this int_3 with an int.
/// </summary>
/// <param name="_Value">
/// an int value.
/// </param>
void set_z(int _Value) __GPU
{
_M_z = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
int_3() __GPU
{
_M_x = 0;
_M_y = 0;
_M_z = 0;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
int_3(int _V0, int _V1, int _V2) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
int_3(int _V) __GPU
{
_M_x = _V;
_M_y = _V;
_M_z = _V;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_3(const uint_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_3(const float_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_3(const unorm_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_3(const norm_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_3(const double_3& _Other) __GPU;
int_3 operator~() const __GPU
{
int_3 _Value = *this;
return int_3(~_Value.x, ~_Value.y, ~_Value.z);
}
int_3 operator-() const __GPU
{
int_3 _Value = *this;
return int_3(-_Value.x, -_Value.y, -_Value.z);
}
int_3& operator++() __GPU
{
int_3 _Value = *this;
++_Value._M_x;
++_Value._M_y;
++_Value._M_z;
*this = _Value;
return *this;
}
int_3 operator++(int) __GPU
{
int_3 _Result = *this;
++(*this);
return _Result;
}
int_3& operator--() __GPU
{
int_3 _Value = *this;
--_Value._M_x;
--_Value._M_y;
--_Value._M_z;
*this = _Value;
return *this;
}
int_3 operator--(int) __GPU
{
int_3 _Result = *this;
--(*this);
return _Result;
}
int_3& operator+=(const int_3& _Other) __GPU
{
int_3 _Value1 = *this;
int_3 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
_Value1.z += _Value2.z;
*this = _Value1;
return *this;
}
int_3& operator-=(const int_3& _Other) __GPU
{
int_3 _Value1 = *this;
int_3 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
_Value1.z -= _Value2.z;
*this = _Value1;
return *this;
}
int_3& operator*=(const int_3& _Other) __GPU
{
int_3 _Value1 = *this;
int_3 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
_Value1.z *= _Value2.z;
*this = _Value1;
return *this;
}
int_3& operator/=(const int_3& _Other) __GPU
{
int_3 _Value1 = *this;
int_3 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
_Value1.z /= _Value2.z;
*this = _Value1;
return *this;
}
int_3& operator%=(const int_3& _Other) __GPU
{
int_3 _Value1 = *this;
int_3 _Value2 = _Other;
_Value1.x %= _Value2.x;
_Value1.y %= _Value2.y;
_Value1.z %= _Value2.z;
*this = _Value1;
return *this;
}
int_3& operator^=(const int_3& _Other) __GPU
{
int_3 _Value1 = *this;
int_3 _Value2 = _Other;
_Value1.x ^= _Value2.x;
_Value1.y ^= _Value2.y;
_Value1.z ^= _Value2.z;
*this = _Value1;
return *this;
}
int_3& operator|=(const int_3& _Other) __GPU
{
int_3 _Value1 = *this;
int_3 _Value2 = _Other;
_Value1.x |= _Value2.x;
_Value1.y |= _Value2.y;
_Value1.z |= _Value2.z;
*this = _Value1;
return *this;
}
int_3& operator&=(const int_3& _Other) __GPU
{
int_3 _Value1 = *this;
int_3 _Value2 = _Other;
_Value1.x &= _Value2.x;
_Value1.y &= _Value2.y;
_Value1.z &= _Value2.z;
*this = _Value1;
return *this;
}
int_3& operator>>=(const int_3& _Other) __GPU
{
int_3 _Value1 = *this;
int_3 _Value2 = _Other;
_Value1.x >>= _Value2.x;
_Value1.y >>= _Value2.y;
_Value1.z >>= _Value2.z;
*this = _Value1;
return *this;
}
int_3& operator<<=(const int_3& _Other) __GPU
{
int_3 _Value1 = *this;
int_3 _Value2 = _Other;
_Value1.x <<= _Value2.x;
_Value1.y <<= _Value2.y;
_Value1.z <<= _Value2.z;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this int_3 as an int_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) int_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this int_3 as an int_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) int_2 rg;
/// <summary>
/// Returns an int_2 that is composed of element 0, and element 1 of this int_3.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_xy() const __GPU {
return int_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this int_3 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_xy(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 2 of this int_3 as an int_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) int_2 xz;
/// <summary>
/// Property for accessing element 0, and 2 of this int_3 as an int_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) int_2 rb;
/// <summary>
/// Returns an int_2 that is composed of element 0, and element 2 of this int_3.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_xz() const __GPU {
return int_2(_M_x,_M_z);
}
/// <summary>
/// Set element 0, and 2 of this int_3 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_xz(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this int_3 as an int_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) int_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this int_3 as an int_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) int_2 gr;
/// <summary>
/// Returns an int_2 that is composed of element 1, and element 0 of this int_3.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_yx() const __GPU {
return int_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this int_3 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_yx(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 2 of this int_3 as an int_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) int_2 yz;
/// <summary>
/// Property for accessing element 1, and 2 of this int_3 as an int_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) int_2 gb;
/// <summary>
/// Returns an int_2 that is composed of element 1, and element 2 of this int_3.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_yz() const __GPU {
return int_2(_M_y,_M_z);
}
/// <summary>
/// Set element 1, and 2 of this int_3 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_yz(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 0 of this int_3 as an int_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) int_2 zx;
/// <summary>
/// Property for accessing element 2, and 0 of this int_3 as an int_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) int_2 br;
/// <summary>
/// Returns an int_2 that is composed of element 2, and element 0 of this int_3.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_zx() const __GPU {
return int_2(_M_z,_M_x);
}
/// <summary>
/// Set element 2, and 0 of this int_3 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_zx(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 1 of this int_3 as an int_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) int_2 zy;
/// <summary>
/// Property for accessing element 2, and 1 of this int_3 as an int_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) int_2 bg;
/// <summary>
/// Returns an int_2 that is composed of element 2, and element 1 of this int_3.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_zy() const __GPU {
return int_2(_M_z,_M_y);
}
/// <summary>
/// Set element 2, and 1 of this int_3 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_zy(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, 1, and 2 of this int_3 as an int_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) int_3 xyz;
/// <summary>
/// Property for accessing element 0, 1, and 2 of this int_3 as an int_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) int_3 rgb;
/// <summary>
/// Returns an int_3 that is composed of element 0, element 1, and element 2 of this int_3.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_xyz() const __GPU {
return int_3(_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 1, and 2 of this int_3 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_xyz(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 1 of this int_3 as an int_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) int_3 xzy;
/// <summary>
/// Property for accessing element 0, 2, and 1 of this int_3 as an int_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) int_3 rbg;
/// <summary>
/// Returns an int_3 that is composed of element 0, element 2, and element 1 of this int_3.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_xzy() const __GPU {
return int_3(_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 2, and 1 of this int_3 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_xzy(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 2 of this int_3 as an int_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) int_3 yxz;
/// <summary>
/// Property for accessing element 1, 0, and 2 of this int_3 as an int_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) int_3 grb;
/// <summary>
/// Returns an int_3 that is composed of element 1, element 0, and element 2 of this int_3.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_yxz() const __GPU {
return int_3(_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 0, and 2 of this int_3 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_yxz(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 0 of this int_3 as an int_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) int_3 yzx;
/// <summary>
/// Property for accessing element 1, 2, and 0 of this int_3 as an int_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) int_3 gbr;
/// <summary>
/// Returns an int_3 that is composed of element 1, element 2, and element 0 of this int_3.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_yzx() const __GPU {
return int_3(_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 2, and 0 of this int_3 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_yzx(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 1 of this int_3 as an int_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) int_3 zxy;
/// <summary>
/// Property for accessing element 2, 0, and 1 of this int_3 as an int_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) int_3 brg;
/// <summary>
/// Returns an int_3 that is composed of element 2, element 0, and element 1 of this int_3.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_zxy() const __GPU {
return int_3(_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 0, and 1 of this int_3 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_zxy(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 0 of this int_3 as an int_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) int_3 zyx;
/// <summary>
/// Property for accessing element 2, 1, and 0 of this int_3 as an int_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) int_3 bgr;
/// <summary>
/// Returns an int_3 that is composed of element 2, element 1, and element 0 of this int_3.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_zyx() const __GPU {
return int_3(_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 1, and 0 of this int_3 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_zyx(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
};
/// <summary>
/// Represent a short vector of 4 int's.
/// </summary>
class int_4
{
public:
typedef int value_type;
static const int size = 4;
private:
static const _Short_vector_base_type_id _Base_type_id = _Int_type;
private:
value_type _M_x;
value_type _M_y;
value_type _M_z;
value_type _M_w;
public:
/// <summary>
/// Property for accessing element 0 of this int_4 as an int.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) int x;
/// <summary>
/// Property for accessing element 0 of this int_4 as an int.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) int r;
/// <summary>
/// Returns element 0 of this int_4.
/// </summary>
/// <returns>
/// Element 0 of this int_4.
/// </returns>
int get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this int_4.
/// </summary>
/// <returns>
/// Reference to element 0 of this int_4.
/// </returns>
int& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this int_4.
/// </summary>
/// <returns>
/// Reference to element 0 of this int_4.
/// </returns>
int& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this int_4 with an int.
/// </summary>
/// <param name="_Value">
/// an int value.
/// </param>
void set_x(int _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this int_4 as an int.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) int y;
/// <summary>
/// Property for accessing element 1 of this int_4 as an int.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) int g;
/// <summary>
/// Returns element 1 of this int_4.
/// </summary>
/// <returns>
/// Element 1 of this int_4.
/// </returns>
int get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this int_4.
/// </summary>
/// <returns>
/// Reference to element 1 of this int_4.
/// </returns>
int& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this int_4.
/// </summary>
/// <returns>
/// Reference to element 1 of this int_4.
/// </returns>
int& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this int_4 with an int.
/// </summary>
/// <param name="_Value">
/// an int value.
/// </param>
void set_y(int _Value) __GPU
{
_M_y = _Value;
}
/// <summary>
/// Property for accessing element 2 of this int_4 as an int.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) int z;
/// <summary>
/// Property for accessing element 2 of this int_4 as an int.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) int b;
/// <summary>
/// Returns element 2 of this int_4.
/// </summary>
/// <returns>
/// Element 2 of this int_4.
/// </returns>
int get_z() const __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this int_4.
/// </summary>
/// <returns>
/// Reference to element 2 of this int_4.
/// </returns>
int& ref_z() __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this int_4.
/// </summary>
/// <returns>
/// Reference to element 2 of this int_4.
/// </returns>
int& ref_b() __GPU {
return _M_z;
}
/// <summary>
/// Set element 2 of this int_4 with an int.
/// </summary>
/// <param name="_Value">
/// an int value.
/// </param>
void set_z(int _Value) __GPU
{
_M_z = _Value;
}
/// <summary>
/// Property for accessing element 3 of this int_4 as an int.
/// </summary>
__declspec( property( get=get_w, put=set_w) ) int w;
/// <summary>
/// Property for accessing element 3 of this int_4 as an int.
/// </summary>
__declspec( property( get=get_w, put=set_w) ) int a;
/// <summary>
/// Returns element 3 of this int_4.
/// </summary>
/// <returns>
/// Element 3 of this int_4.
/// </returns>
int get_w() const __GPU {
return _M_w;
}
/// <summary>
/// Returns reference to element 3 of this int_4.
/// </summary>
/// <returns>
/// Reference to element 3 of this int_4.
/// </returns>
int& ref_w() __GPU {
return _M_w;
}
/// <summary>
/// Returns reference to element 3 of this int_4.
/// </summary>
/// <returns>
/// Reference to element 3 of this int_4.
/// </returns>
int& ref_a() __GPU {
return _M_w;
}
/// <summary>
/// Set element 3 of this int_4 with an int.
/// </summary>
/// <param name="_Value">
/// an int value.
/// </param>
void set_w(int _Value) __GPU
{
_M_w = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
int_4() __GPU
{
_M_x = 0;
_M_y = 0;
_M_z = 0;
_M_w = 0;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
/// <param name="_V3">
/// The value to initialize element 3.
/// </param>
int_4(int _V0, int _V1, int _V2, int _V3) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
_M_w = _V3;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
int_4(int _V) __GPU
{
_M_x = _V;
_M_y = _V;
_M_z = _V;
_M_w = _V;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_4(const uint_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_4(const float_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_4(const unorm_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_4(const norm_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline int_4(const double_4& _Other) __GPU;
int_4 operator~() const __GPU
{
int_4 _Value = *this;
return int_4(~_Value.x, ~_Value.y, ~_Value.z, ~_Value.w);
}
int_4 operator-() const __GPU
{
int_4 _Value = *this;
return int_4(-_Value.x, -_Value.y, -_Value.z, -_Value.w);
}
int_4& operator++() __GPU
{
int_4 _Value = *this;
++_Value._M_x;
++_Value._M_y;
++_Value._M_z;
++_Value._M_w;
*this = _Value;
return *this;
}
int_4 operator++(int) __GPU
{
int_4 _Result = *this;
++(*this);
return _Result;
}
int_4& operator--() __GPU
{
int_4 _Value = *this;
--_Value._M_x;
--_Value._M_y;
--_Value._M_z;
--_Value._M_w;
*this = _Value;
return *this;
}
int_4 operator--(int) __GPU
{
int_4 _Result = *this;
--(*this);
return _Result;
}
int_4& operator+=(const int_4& _Other) __GPU
{
int_4 _Value1 = *this;
int_4 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
_Value1.z += _Value2.z;
_Value1.w += _Value2.w;
*this = _Value1;
return *this;
}
int_4& operator-=(const int_4& _Other) __GPU
{
int_4 _Value1 = *this;
int_4 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
_Value1.z -= _Value2.z;
_Value1.w -= _Value2.w;
*this = _Value1;
return *this;
}
int_4& operator*=(const int_4& _Other) __GPU
{
int_4 _Value1 = *this;
int_4 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
_Value1.z *= _Value2.z;
_Value1.w *= _Value2.w;
*this = _Value1;
return *this;
}
int_4& operator/=(const int_4& _Other) __GPU
{
int_4 _Value1 = *this;
int_4 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
_Value1.z /= _Value2.z;
_Value1.w /= _Value2.w;
*this = _Value1;
return *this;
}
int_4& operator%=(const int_4& _Other) __GPU
{
int_4 _Value1 = *this;
int_4 _Value2 = _Other;
_Value1.x %= _Value2.x;
_Value1.y %= _Value2.y;
_Value1.z %= _Value2.z;
_Value1.w %= _Value2.w;
*this = _Value1;
return *this;
}
int_4& operator^=(const int_4& _Other) __GPU
{
int_4 _Value1 = *this;
int_4 _Value2 = _Other;
_Value1.x ^= _Value2.x;
_Value1.y ^= _Value2.y;
_Value1.z ^= _Value2.z;
_Value1.w ^= _Value2.w;
*this = _Value1;
return *this;
}
int_4& operator|=(const int_4& _Other) __GPU
{
int_4 _Value1 = *this;
int_4 _Value2 = _Other;
_Value1.x |= _Value2.x;
_Value1.y |= _Value2.y;
_Value1.z |= _Value2.z;
_Value1.w |= _Value2.w;
*this = _Value1;
return *this;
}
int_4& operator&=(const int_4& _Other) __GPU
{
int_4 _Value1 = *this;
int_4 _Value2 = _Other;
_Value1.x &= _Value2.x;
_Value1.y &= _Value2.y;
_Value1.z &= _Value2.z;
_Value1.w &= _Value2.w;
*this = _Value1;
return *this;
}
int_4& operator>>=(const int_4& _Other) __GPU
{
int_4 _Value1 = *this;
int_4 _Value2 = _Other;
_Value1.x >>= _Value2.x;
_Value1.y >>= _Value2.y;
_Value1.z >>= _Value2.z;
_Value1.w >>= _Value2.w;
*this = _Value1;
return *this;
}
int_4& operator<<=(const int_4& _Other) __GPU
{
int_4 _Value1 = *this;
int_4 _Value2 = _Other;
_Value1.x <<= _Value2.x;
_Value1.y <<= _Value2.y;
_Value1.z <<= _Value2.z;
_Value1.w <<= _Value2.w;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) int_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) int_2 rg;
/// <summary>
/// Returns an int_2 that is composed of element 0, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_xy() const __GPU {
return int_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this int_4 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_xy(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 2 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) int_2 xz;
/// <summary>
/// Property for accessing element 0, and 2 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) int_2 rb;
/// <summary>
/// Returns an int_2 that is composed of element 0, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_xz() const __GPU {
return int_2(_M_x,_M_z);
}
/// <summary>
/// Set element 0, and 2 of this int_4 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_xz(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 3 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_xw, put=set_xw) ) int_2 xw;
/// <summary>
/// Property for accessing element 0, and 3 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_xw, put=set_xw) ) int_2 ra;
/// <summary>
/// Returns an int_2 that is composed of element 0, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_xw() const __GPU {
return int_2(_M_x,_M_w);
}
/// <summary>
/// Set element 0, and 3 of this int_4 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_xw(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) int_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) int_2 gr;
/// <summary>
/// Returns an int_2 that is composed of element 1, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_yx() const __GPU {
return int_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this int_4 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_yx(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 2 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) int_2 yz;
/// <summary>
/// Property for accessing element 1, and 2 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) int_2 gb;
/// <summary>
/// Returns an int_2 that is composed of element 1, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_yz() const __GPU {
return int_2(_M_y,_M_z);
}
/// <summary>
/// Set element 1, and 2 of this int_4 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_yz(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 3 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_yw, put=set_yw) ) int_2 yw;
/// <summary>
/// Property for accessing element 1, and 3 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_yw, put=set_yw) ) int_2 ga;
/// <summary>
/// Returns an int_2 that is composed of element 1, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_yw() const __GPU {
return int_2(_M_y,_M_w);
}
/// <summary>
/// Set element 1, and 3 of this int_4 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_yw(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 0 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) int_2 zx;
/// <summary>
/// Property for accessing element 2, and 0 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) int_2 br;
/// <summary>
/// Returns an int_2 that is composed of element 2, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_zx() const __GPU {
return int_2(_M_z,_M_x);
}
/// <summary>
/// Set element 2, and 0 of this int_4 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_zx(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 1 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) int_2 zy;
/// <summary>
/// Property for accessing element 2, and 1 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) int_2 bg;
/// <summary>
/// Returns an int_2 that is composed of element 2, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_zy() const __GPU {
return int_2(_M_z,_M_y);
}
/// <summary>
/// Set element 2, and 1 of this int_4 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_zy(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 3 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_zw, put=set_zw) ) int_2 zw;
/// <summary>
/// Property for accessing element 2, and 3 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_zw, put=set_zw) ) int_2 ba;
/// <summary>
/// Returns an int_2 that is composed of element 2, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_zw() const __GPU {
return int_2(_M_z,_M_w);
}
/// <summary>
/// Set element 2, and 3 of this int_4 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_zw(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 0 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_wx, put=set_wx) ) int_2 wx;
/// <summary>
/// Property for accessing element 3, and 0 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_wx, put=set_wx) ) int_2 ar;
/// <summary>
/// Returns an int_2 that is composed of element 3, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_wx() const __GPU {
return int_2(_M_w,_M_x);
}
/// <summary>
/// Set element 3, and 0 of this int_4 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_wx(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 1 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_wy, put=set_wy) ) int_2 wy;
/// <summary>
/// Property for accessing element 3, and 1 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_wy, put=set_wy) ) int_2 ag;
/// <summary>
/// Returns an int_2 that is composed of element 3, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_wy() const __GPU {
return int_2(_M_w,_M_y);
}
/// <summary>
/// Set element 3, and 1 of this int_4 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_wy(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 2 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_wz, put=set_wz) ) int_2 wz;
/// <summary>
/// Property for accessing element 3, and 2 of this int_4 as an int_2.
/// </summary>
__declspec( property( get=get_wz, put=set_wz) ) int_2 ab;
/// <summary>
/// Returns an int_2 that is composed of element 3, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_2.
/// </returns>
int_2 get_wz() const __GPU {
return int_2(_M_w,_M_z);
}
/// <summary>
/// Set element 3, and 2 of this int_4 with an int_2.
/// </summary>
/// <param name="_Value">
/// an int_2 value.
/// </param>
void set_wz(const int_2& _Value) __GPU
{
int_2 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 0, 1, and 2 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) int_3 xyz;
/// <summary>
/// Property for accessing element 0, 1, and 2 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) int_3 rgb;
/// <summary>
/// Returns an int_3 that is composed of element 0, element 1, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_xyz() const __GPU {
return int_3(_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 1, and 2 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_xyz(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 1, and 3 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_xyw, put=set_xyw) ) int_3 xyw;
/// <summary>
/// Property for accessing element 0, 1, and 3 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_xyw, put=set_xyw) ) int_3 rga;
/// <summary>
/// Returns an int_3 that is composed of element 0, element 1, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_xyw() const __GPU {
return int_3(_M_x,_M_y,_M_w);
}
/// <summary>
/// Set element 0, 1, and 3 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_xyw(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 1 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) int_3 xzy;
/// <summary>
/// Property for accessing element 0, 2, and 1 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) int_3 rbg;
/// <summary>
/// Returns an int_3 that is composed of element 0, element 2, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_xzy() const __GPU {
return int_3(_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 2, and 1 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_xzy(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 3 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_xzw, put=set_xzw) ) int_3 xzw;
/// <summary>
/// Property for accessing element 0, 2, and 3 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_xzw, put=set_xzw) ) int_3 rba;
/// <summary>
/// Returns an int_3 that is composed of element 0, element 2, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_xzw() const __GPU {
return int_3(_M_x,_M_z,_M_w);
}
/// <summary>
/// Set element 0, 2, and 3 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_xzw(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 3, and 1 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_xwy, put=set_xwy) ) int_3 xwy;
/// <summary>
/// Property for accessing element 0, 3, and 1 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_xwy, put=set_xwy) ) int_3 rag;
/// <summary>
/// Returns an int_3 that is composed of element 0, element 3, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_xwy() const __GPU {
return int_3(_M_x,_M_w,_M_y);
}
/// <summary>
/// Set element 0, 3, and 1 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_xwy(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 3, and 2 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_xwz, put=set_xwz) ) int_3 xwz;
/// <summary>
/// Property for accessing element 0, 3, and 2 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_xwz, put=set_xwz) ) int_3 rab;
/// <summary>
/// Returns an int_3 that is composed of element 0, element 3, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_xwz() const __GPU {
return int_3(_M_x,_M_w,_M_z);
}
/// <summary>
/// Set element 0, 3, and 2 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_xwz(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 2 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) int_3 yxz;
/// <summary>
/// Property for accessing element 1, 0, and 2 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) int_3 grb;
/// <summary>
/// Returns an int_3 that is composed of element 1, element 0, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_yxz() const __GPU {
return int_3(_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 0, and 2 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_yxz(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 3 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_yxw, put=set_yxw) ) int_3 yxw;
/// <summary>
/// Property for accessing element 1, 0, and 3 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_yxw, put=set_yxw) ) int_3 gra;
/// <summary>
/// Returns an int_3 that is composed of element 1, element 0, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_yxw() const __GPU {
return int_3(_M_y,_M_x,_M_w);
}
/// <summary>
/// Set element 1, 0, and 3 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_yxw(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 0 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) int_3 yzx;
/// <summary>
/// Property for accessing element 1, 2, and 0 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) int_3 gbr;
/// <summary>
/// Returns an int_3 that is composed of element 1, element 2, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_yzx() const __GPU {
return int_3(_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 2, and 0 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_yzx(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 3 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_yzw, put=set_yzw) ) int_3 yzw;
/// <summary>
/// Property for accessing element 1, 2, and 3 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_yzw, put=set_yzw) ) int_3 gba;
/// <summary>
/// Returns an int_3 that is composed of element 1, element 2, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_yzw() const __GPU {
return int_3(_M_y,_M_z,_M_w);
}
/// <summary>
/// Set element 1, 2, and 3 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_yzw(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 3, and 0 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_ywx, put=set_ywx) ) int_3 ywx;
/// <summary>
/// Property for accessing element 1, 3, and 0 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_ywx, put=set_ywx) ) int_3 gar;
/// <summary>
/// Returns an int_3 that is composed of element 1, element 3, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_ywx() const __GPU {
return int_3(_M_y,_M_w,_M_x);
}
/// <summary>
/// Set element 1, 3, and 0 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_ywx(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 3, and 2 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_ywz, put=set_ywz) ) int_3 ywz;
/// <summary>
/// Property for accessing element 1, 3, and 2 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_ywz, put=set_ywz) ) int_3 gab;
/// <summary>
/// Returns an int_3 that is composed of element 1, element 3, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_ywz() const __GPU {
return int_3(_M_y,_M_w,_M_z);
}
/// <summary>
/// Set element 1, 3, and 2 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_ywz(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 1 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) int_3 zxy;
/// <summary>
/// Property for accessing element 2, 0, and 1 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) int_3 brg;
/// <summary>
/// Returns an int_3 that is composed of element 2, element 0, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_zxy() const __GPU {
return int_3(_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 0, and 1 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_zxy(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 3 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_zxw, put=set_zxw) ) int_3 zxw;
/// <summary>
/// Property for accessing element 2, 0, and 3 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_zxw, put=set_zxw) ) int_3 bra;
/// <summary>
/// Returns an int_3 that is composed of element 2, element 0, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_zxw() const __GPU {
return int_3(_M_z,_M_x,_M_w);
}
/// <summary>
/// Set element 2, 0, and 3 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_zxw(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 0 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) int_3 zyx;
/// <summary>
/// Property for accessing element 2, 1, and 0 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) int_3 bgr;
/// <summary>
/// Returns an int_3 that is composed of element 2, element 1, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_zyx() const __GPU {
return int_3(_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 1, and 0 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_zyx(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 3 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_zyw, put=set_zyw) ) int_3 zyw;
/// <summary>
/// Property for accessing element 2, 1, and 3 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_zyw, put=set_zyw) ) int_3 bga;
/// <summary>
/// Returns an int_3 that is composed of element 2, element 1, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_zyw() const __GPU {
return int_3(_M_z,_M_y,_M_w);
}
/// <summary>
/// Set element 2, 1, and 3 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_zyw(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 3, and 0 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_zwx, put=set_zwx) ) int_3 zwx;
/// <summary>
/// Property for accessing element 2, 3, and 0 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_zwx, put=set_zwx) ) int_3 bar;
/// <summary>
/// Returns an int_3 that is composed of element 2, element 3, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_zwx() const __GPU {
return int_3(_M_z,_M_w,_M_x);
}
/// <summary>
/// Set element 2, 3, and 0 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_zwx(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 3, and 1 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_zwy, put=set_zwy) ) int_3 zwy;
/// <summary>
/// Property for accessing element 2, 3, and 1 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_zwy, put=set_zwy) ) int_3 bag;
/// <summary>
/// Returns an int_3 that is composed of element 2, element 3, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_zwy() const __GPU {
return int_3(_M_z,_M_w,_M_y);
}
/// <summary>
/// Set element 2, 3, and 1 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_zwy(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 0, and 1 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_wxy, put=set_wxy) ) int_3 wxy;
/// <summary>
/// Property for accessing element 3, 0, and 1 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_wxy, put=set_wxy) ) int_3 arg;
/// <summary>
/// Returns an int_3 that is composed of element 3, element 0, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_wxy() const __GPU {
return int_3(_M_w,_M_x,_M_y);
}
/// <summary>
/// Set element 3, 0, and 1 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_wxy(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 0, and 2 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_wxz, put=set_wxz) ) int_3 wxz;
/// <summary>
/// Property for accessing element 3, 0, and 2 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_wxz, put=set_wxz) ) int_3 arb;
/// <summary>
/// Returns an int_3 that is composed of element 3, element 0, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_wxz() const __GPU {
return int_3(_M_w,_M_x,_M_z);
}
/// <summary>
/// Set element 3, 0, and 2 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_wxz(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 1, and 0 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_wyx, put=set_wyx) ) int_3 wyx;
/// <summary>
/// Property for accessing element 3, 1, and 0 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_wyx, put=set_wyx) ) int_3 agr;
/// <summary>
/// Returns an int_3 that is composed of element 3, element 1, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_wyx() const __GPU {
return int_3(_M_w,_M_y,_M_x);
}
/// <summary>
/// Set element 3, 1, and 0 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_wyx(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 1, and 2 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_wyz, put=set_wyz) ) int_3 wyz;
/// <summary>
/// Property for accessing element 3, 1, and 2 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_wyz, put=set_wyz) ) int_3 agb;
/// <summary>
/// Returns an int_3 that is composed of element 3, element 1, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_wyz() const __GPU {
return int_3(_M_w,_M_y,_M_z);
}
/// <summary>
/// Set element 3, 1, and 2 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_wyz(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 2, and 0 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_wzx, put=set_wzx) ) int_3 wzx;
/// <summary>
/// Property for accessing element 3, 2, and 0 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_wzx, put=set_wzx) ) int_3 abr;
/// <summary>
/// Returns an int_3 that is composed of element 3, element 2, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_wzx() const __GPU {
return int_3(_M_w,_M_z,_M_x);
}
/// <summary>
/// Set element 3, 2, and 0 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_wzx(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 2, and 1 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_wzy, put=set_wzy) ) int_3 wzy;
/// <summary>
/// Property for accessing element 3, 2, and 1 of this int_4 as an int_3.
/// </summary>
__declspec( property( get=get_wzy, put=set_wzy) ) int_3 abg;
/// <summary>
/// Returns an int_3 that is composed of element 3, element 2, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_3.
/// </returns>
int_3 get_wzy() const __GPU {
return int_3(_M_w,_M_z,_M_y);
}
/// <summary>
/// Set element 3, 2, and 1 of this int_4 with an int_3.
/// </summary>
/// <param name="_Value">
/// an int_3 value.
/// </param>
void set_wzy(const int_3& _Value) __GPU
{
int_3 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 1, 2, and 3 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_xyzw, put=set_xyzw) ) int_4 xyzw;
/// <summary>
/// Property for accessing element 0, 1, 2, and 3 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_xyzw, put=set_xyzw) ) int_4 rgba;
/// <summary>
/// Returns an int_4 that is composed of element 0, element 1, element 2, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_xyzw() const __GPU {
return int_4(_M_x,_M_y,_M_z,_M_w);
}
/// <summary>
/// Set element 0, 1, 2, and 3 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_xyzw(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 1, 3, and 2 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_xywz, put=set_xywz) ) int_4 xywz;
/// <summary>
/// Property for accessing element 0, 1, 3, and 2 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_xywz, put=set_xywz) ) int_4 rgab;
/// <summary>
/// Returns an int_4 that is composed of element 0, element 1, element 3, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_xywz() const __GPU {
return int_4(_M_x,_M_y,_M_w,_M_z);
}
/// <summary>
/// Set element 0, 1, 3, and 2 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_xywz(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 2, 1, and 3 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_xzyw, put=set_xzyw) ) int_4 xzyw;
/// <summary>
/// Property for accessing element 0, 2, 1, and 3 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_xzyw, put=set_xzyw) ) int_4 rbga;
/// <summary>
/// Returns an int_4 that is composed of element 0, element 2, element 1, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_xzyw() const __GPU {
return int_4(_M_x,_M_z,_M_y,_M_w);
}
/// <summary>
/// Set element 0, 2, 1, and 3 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_xzyw(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 2, 3, and 1 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_xzwy, put=set_xzwy) ) int_4 xzwy;
/// <summary>
/// Property for accessing element 0, 2, 3, and 1 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_xzwy, put=set_xzwy) ) int_4 rbag;
/// <summary>
/// Returns an int_4 that is composed of element 0, element 2, element 3, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_xzwy() const __GPU {
return int_4(_M_x,_M_z,_M_w,_M_y);
}
/// <summary>
/// Set element 0, 2, 3, and 1 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_xzwy(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 3, 1, and 2 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_xwyz, put=set_xwyz) ) int_4 xwyz;
/// <summary>
/// Property for accessing element 0, 3, 1, and 2 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_xwyz, put=set_xwyz) ) int_4 ragb;
/// <summary>
/// Returns an int_4 that is composed of element 0, element 3, element 1, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_xwyz() const __GPU {
return int_4(_M_x,_M_w,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 3, 1, and 2 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_xwyz(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 3, 2, and 1 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_xwzy, put=set_xwzy) ) int_4 xwzy;
/// <summary>
/// Property for accessing element 0, 3, 2, and 1 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_xwzy, put=set_xwzy) ) int_4 rabg;
/// <summary>
/// Returns an int_4 that is composed of element 0, element 3, element 2, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_xwzy() const __GPU {
return int_4(_M_x,_M_w,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 3, 2, and 1 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_xwzy(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 0, 2, and 3 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_yxzw, put=set_yxzw) ) int_4 yxzw;
/// <summary>
/// Property for accessing element 1, 0, 2, and 3 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_yxzw, put=set_yxzw) ) int_4 grba;
/// <summary>
/// Returns an int_4 that is composed of element 1, element 0, element 2, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_yxzw() const __GPU {
return int_4(_M_y,_M_x,_M_z,_M_w);
}
/// <summary>
/// Set element 1, 0, 2, and 3 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_yxzw(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 0, 3, and 2 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_yxwz, put=set_yxwz) ) int_4 yxwz;
/// <summary>
/// Property for accessing element 1, 0, 3, and 2 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_yxwz, put=set_yxwz) ) int_4 grab;
/// <summary>
/// Returns an int_4 that is composed of element 1, element 0, element 3, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_yxwz() const __GPU {
return int_4(_M_y,_M_x,_M_w,_M_z);
}
/// <summary>
/// Set element 1, 0, 3, and 2 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_yxwz(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 2, 0, and 3 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_yzxw, put=set_yzxw) ) int_4 yzxw;
/// <summary>
/// Property for accessing element 1, 2, 0, and 3 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_yzxw, put=set_yzxw) ) int_4 gbra;
/// <summary>
/// Returns an int_4 that is composed of element 1, element 2, element 0, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_yzxw() const __GPU {
return int_4(_M_y,_M_z,_M_x,_M_w);
}
/// <summary>
/// Set element 1, 2, 0, and 3 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_yzxw(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 2, 3, and 0 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_yzwx, put=set_yzwx) ) int_4 yzwx;
/// <summary>
/// Property for accessing element 1, 2, 3, and 0 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_yzwx, put=set_yzwx) ) int_4 gbar;
/// <summary>
/// Returns an int_4 that is composed of element 1, element 2, element 3, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_yzwx() const __GPU {
return int_4(_M_y,_M_z,_M_w,_M_x);
}
/// <summary>
/// Set element 1, 2, 3, and 0 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_yzwx(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 3, 0, and 2 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_ywxz, put=set_ywxz) ) int_4 ywxz;
/// <summary>
/// Property for accessing element 1, 3, 0, and 2 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_ywxz, put=set_ywxz) ) int_4 garb;
/// <summary>
/// Returns an int_4 that is composed of element 1, element 3, element 0, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_ywxz() const __GPU {
return int_4(_M_y,_M_w,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 3, 0, and 2 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_ywxz(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 3, 2, and 0 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_ywzx, put=set_ywzx) ) int_4 ywzx;
/// <summary>
/// Property for accessing element 1, 3, 2, and 0 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_ywzx, put=set_ywzx) ) int_4 gabr;
/// <summary>
/// Returns an int_4 that is composed of element 1, element 3, element 2, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_ywzx() const __GPU {
return int_4(_M_y,_M_w,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 3, 2, and 0 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_ywzx(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 0, 1, and 3 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_zxyw, put=set_zxyw) ) int_4 zxyw;
/// <summary>
/// Property for accessing element 2, 0, 1, and 3 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_zxyw, put=set_zxyw) ) int_4 brga;
/// <summary>
/// Returns an int_4 that is composed of element 2, element 0, element 1, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_zxyw() const __GPU {
return int_4(_M_z,_M_x,_M_y,_M_w);
}
/// <summary>
/// Set element 2, 0, 1, and 3 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_zxyw(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 0, 3, and 1 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_zxwy, put=set_zxwy) ) int_4 zxwy;
/// <summary>
/// Property for accessing element 2, 0, 3, and 1 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_zxwy, put=set_zxwy) ) int_4 brag;
/// <summary>
/// Returns an int_4 that is composed of element 2, element 0, element 3, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_zxwy() const __GPU {
return int_4(_M_z,_M_x,_M_w,_M_y);
}
/// <summary>
/// Set element 2, 0, 3, and 1 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_zxwy(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 1, 0, and 3 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_zyxw, put=set_zyxw) ) int_4 zyxw;
/// <summary>
/// Property for accessing element 2, 1, 0, and 3 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_zyxw, put=set_zyxw) ) int_4 bgra;
/// <summary>
/// Returns an int_4 that is composed of element 2, element 1, element 0, and element 3 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_zyxw() const __GPU {
return int_4(_M_z,_M_y,_M_x,_M_w);
}
/// <summary>
/// Set element 2, 1, 0, and 3 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_zyxw(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 1, 3, and 0 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_zywx, put=set_zywx) ) int_4 zywx;
/// <summary>
/// Property for accessing element 2, 1, 3, and 0 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_zywx, put=set_zywx) ) int_4 bgar;
/// <summary>
/// Returns an int_4 that is composed of element 2, element 1, element 3, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_zywx() const __GPU {
return int_4(_M_z,_M_y,_M_w,_M_x);
}
/// <summary>
/// Set element 2, 1, 3, and 0 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_zywx(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 3, 0, and 1 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_zwxy, put=set_zwxy) ) int_4 zwxy;
/// <summary>
/// Property for accessing element 2, 3, 0, and 1 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_zwxy, put=set_zwxy) ) int_4 barg;
/// <summary>
/// Returns an int_4 that is composed of element 2, element 3, element 0, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_zwxy() const __GPU {
return int_4(_M_z,_M_w,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 3, 0, and 1 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_zwxy(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 3, 1, and 0 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_zwyx, put=set_zwyx) ) int_4 zwyx;
/// <summary>
/// Property for accessing element 2, 3, 1, and 0 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_zwyx, put=set_zwyx) ) int_4 bagr;
/// <summary>
/// Returns an int_4 that is composed of element 2, element 3, element 1, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_zwyx() const __GPU {
return int_4(_M_z,_M_w,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 3, 1, and 0 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_zwyx(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 0, 1, and 2 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_wxyz, put=set_wxyz) ) int_4 wxyz;
/// <summary>
/// Property for accessing element 3, 0, 1, and 2 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_wxyz, put=set_wxyz) ) int_4 argb;
/// <summary>
/// Returns an int_4 that is composed of element 3, element 0, element 1, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_wxyz() const __GPU {
return int_4(_M_w,_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 3, 0, 1, and 2 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_wxyz(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 0, 2, and 1 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_wxzy, put=set_wxzy) ) int_4 wxzy;
/// <summary>
/// Property for accessing element 3, 0, 2, and 1 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_wxzy, put=set_wxzy) ) int_4 arbg;
/// <summary>
/// Returns an int_4 that is composed of element 3, element 0, element 2, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_wxzy() const __GPU {
return int_4(_M_w,_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 3, 0, 2, and 1 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_wxzy(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 1, 0, and 2 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_wyxz, put=set_wyxz) ) int_4 wyxz;
/// <summary>
/// Property for accessing element 3, 1, 0, and 2 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_wyxz, put=set_wyxz) ) int_4 agrb;
/// <summary>
/// Returns an int_4 that is composed of element 3, element 1, element 0, and element 2 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_wyxz() const __GPU {
return int_4(_M_w,_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 3, 1, 0, and 2 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_wyxz(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 1, 2, and 0 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_wyzx, put=set_wyzx) ) int_4 wyzx;
/// <summary>
/// Property for accessing element 3, 1, 2, and 0 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_wyzx, put=set_wyzx) ) int_4 agbr;
/// <summary>
/// Returns an int_4 that is composed of element 3, element 1, element 2, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_wyzx() const __GPU {
return int_4(_M_w,_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 3, 1, 2, and 0 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_wyzx(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 2, 0, and 1 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_wzxy, put=set_wzxy) ) int_4 wzxy;
/// <summary>
/// Property for accessing element 3, 2, 0, and 1 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_wzxy, put=set_wzxy) ) int_4 abrg;
/// <summary>
/// Returns an int_4 that is composed of element 3, element 2, element 0, and element 1 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_wzxy() const __GPU {
return int_4(_M_w,_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 3, 2, 0, and 1 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_wzxy(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 2, 1, and 0 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_wzyx, put=set_wzyx) ) int_4 wzyx;
/// <summary>
/// Property for accessing element 3, 2, 1, and 0 of this int_4 as an int_4.
/// </summary>
__declspec( property( get=get_wzyx, put=set_wzyx) ) int_4 abgr;
/// <summary>
/// Returns an int_4 that is composed of element 3, element 2, element 1, and element 0 of this int_4.
/// </summary>
/// <returns>
/// an int_4.
/// </returns>
int_4 get_wzyx() const __GPU {
return int_4(_M_w,_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 3, 2, 1, and 0 of this int_4 with an int_4.
/// </summary>
/// <param name="_Value">
/// an int_4 value.
/// </param>
void set_wzyx(const int_4& _Value) __GPU
{
int_4 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
_M_x = _Val.w;
}
};
/// <summary>
/// Represent a short vector of 2 float's.
/// </summary>
class float_2
{
public:
typedef float value_type;
static const int size = 2;
private:
static const _Short_vector_base_type_id _Base_type_id = _Float_type;
private:
value_type _M_x;
value_type _M_y;
public:
/// <summary>
/// Property for accessing element 0 of this float_2 as a float.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) float x;
/// <summary>
/// Property for accessing element 0 of this float_2 as a float.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) float r;
/// <summary>
/// Returns element 0 of this float_2.
/// </summary>
/// <returns>
/// Element 0 of this float_2.
/// </returns>
float get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this float_2.
/// </summary>
/// <returns>
/// Reference to element 0 of this float_2.
/// </returns>
float& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this float_2.
/// </summary>
/// <returns>
/// Reference to element 0 of this float_2.
/// </returns>
float& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this float_2 with a float.
/// </summary>
/// <param name="_Value">
/// a float value.
/// </param>
void set_x(float _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this float_2 as a float.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) float y;
/// <summary>
/// Property for accessing element 1 of this float_2 as a float.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) float g;
/// <summary>
/// Returns element 1 of this float_2.
/// </summary>
/// <returns>
/// Element 1 of this float_2.
/// </returns>
float get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this float_2.
/// </summary>
/// <returns>
/// Reference to element 1 of this float_2.
/// </returns>
float& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this float_2.
/// </summary>
/// <returns>
/// Reference to element 1 of this float_2.
/// </returns>
float& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this float_2 with a float.
/// </summary>
/// <param name="_Value">
/// a float value.
/// </param>
void set_y(float _Value) __GPU
{
_M_y = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
float_2() __GPU
{
_M_x = 0;
_M_y = 0;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
float_2(float _V0, float _V1) __GPU
{
_M_x = _V0;
_M_y = _V1;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
float_2(float _V) __GPU
{
_M_x = _V;
_M_y = _V;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_2(const uint_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_2(const int_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_2(const unorm_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_2(const norm_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_2(const double_2& _Other) __GPU;
float_2 operator-() const __GPU
{
float_2 _Value = *this;
return float_2(-_Value.x, -_Value.y);
}
float_2& operator++() __GPU
{
float_2 _Value = *this;
++_Value._M_x;
++_Value._M_y;
*this = _Value;
return *this;
}
float_2 operator++(int) __GPU
{
float_2 _Result = *this;
++(*this);
return _Result;
}
float_2& operator--() __GPU
{
float_2 _Value = *this;
--_Value._M_x;
--_Value._M_y;
*this = _Value;
return *this;
}
float_2 operator--(int) __GPU
{
float_2 _Result = *this;
--(*this);
return _Result;
}
float_2& operator+=(const float_2& _Other) __GPU
{
float_2 _Value1 = *this;
float_2 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
*this = _Value1;
return *this;
}
float_2& operator-=(const float_2& _Other) __GPU
{
float_2 _Value1 = *this;
float_2 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
*this = _Value1;
return *this;
}
float_2& operator*=(const float_2& _Other) __GPU
{
float_2 _Value1 = *this;
float_2 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
*this = _Value1;
return *this;
}
float_2& operator/=(const float_2& _Other) __GPU
{
float_2 _Value1 = *this;
float_2 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this float_2 as a float_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) float_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this float_2 as a float_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) float_2 rg;
/// <summary>
/// Returns a float_2 that is composed of element 0, and element 1 of this float_2.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_xy() const __GPU {
return float_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this float_2 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_xy(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this float_2 as a float_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) float_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this float_2 as a float_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) float_2 gr;
/// <summary>
/// Returns a float_2 that is composed of element 1, and element 0 of this float_2.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_yx() const __GPU {
return float_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this float_2 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_yx(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
};
/// <summary>
/// Represent a short vector of 3 float's.
/// </summary>
class float_3
{
public:
typedef float value_type;
static const int size = 3;
private:
static const _Short_vector_base_type_id _Base_type_id = _Float_type;
private:
value_type _M_x;
value_type _M_y;
value_type _M_z;
public:
/// <summary>
/// Property for accessing element 0 of this float_3 as a float.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) float x;
/// <summary>
/// Property for accessing element 0 of this float_3 as a float.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) float r;
/// <summary>
/// Returns element 0 of this float_3.
/// </summary>
/// <returns>
/// Element 0 of this float_3.
/// </returns>
float get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this float_3.
/// </summary>
/// <returns>
/// Reference to element 0 of this float_3.
/// </returns>
float& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this float_3.
/// </summary>
/// <returns>
/// Reference to element 0 of this float_3.
/// </returns>
float& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this float_3 with a float.
/// </summary>
/// <param name="_Value">
/// a float value.
/// </param>
void set_x(float _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this float_3 as a float.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) float y;
/// <summary>
/// Property for accessing element 1 of this float_3 as a float.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) float g;
/// <summary>
/// Returns element 1 of this float_3.
/// </summary>
/// <returns>
/// Element 1 of this float_3.
/// </returns>
float get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this float_3.
/// </summary>
/// <returns>
/// Reference to element 1 of this float_3.
/// </returns>
float& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this float_3.
/// </summary>
/// <returns>
/// Reference to element 1 of this float_3.
/// </returns>
float& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this float_3 with a float.
/// </summary>
/// <param name="_Value">
/// a float value.
/// </param>
void set_y(float _Value) __GPU
{
_M_y = _Value;
}
/// <summary>
/// Property for accessing element 2 of this float_3 as a float.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) float z;
/// <summary>
/// Property for accessing element 2 of this float_3 as a float.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) float b;
/// <summary>
/// Returns element 2 of this float_3.
/// </summary>
/// <returns>
/// Element 2 of this float_3.
/// </returns>
float get_z() const __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this float_3.
/// </summary>
/// <returns>
/// Reference to element 2 of this float_3.
/// </returns>
float& ref_z() __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this float_3.
/// </summary>
/// <returns>
/// Reference to element 2 of this float_3.
/// </returns>
float& ref_b() __GPU {
return _M_z;
}
/// <summary>
/// Set element 2 of this float_3 with a float.
/// </summary>
/// <param name="_Value">
/// a float value.
/// </param>
void set_z(float _Value) __GPU
{
_M_z = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
float_3() __GPU
{
_M_x = 0;
_M_y = 0;
_M_z = 0;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
float_3(float _V0, float _V1, float _V2) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
float_3(float _V) __GPU
{
_M_x = _V;
_M_y = _V;
_M_z = _V;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_3(const uint_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_3(const int_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_3(const unorm_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_3(const norm_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_3(const double_3& _Other) __GPU;
float_3 operator-() const __GPU
{
float_3 _Value = *this;
return float_3(-_Value.x, -_Value.y, -_Value.z);
}
float_3& operator++() __GPU
{
float_3 _Value = *this;
++_Value._M_x;
++_Value._M_y;
++_Value._M_z;
*this = _Value;
return *this;
}
float_3 operator++(int) __GPU
{
float_3 _Result = *this;
++(*this);
return _Result;
}
float_3& operator--() __GPU
{
float_3 _Value = *this;
--_Value._M_x;
--_Value._M_y;
--_Value._M_z;
*this = _Value;
return *this;
}
float_3 operator--(int) __GPU
{
float_3 _Result = *this;
--(*this);
return _Result;
}
float_3& operator+=(const float_3& _Other) __GPU
{
float_3 _Value1 = *this;
float_3 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
_Value1.z += _Value2.z;
*this = _Value1;
return *this;
}
float_3& operator-=(const float_3& _Other) __GPU
{
float_3 _Value1 = *this;
float_3 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
_Value1.z -= _Value2.z;
*this = _Value1;
return *this;
}
float_3& operator*=(const float_3& _Other) __GPU
{
float_3 _Value1 = *this;
float_3 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
_Value1.z *= _Value2.z;
*this = _Value1;
return *this;
}
float_3& operator/=(const float_3& _Other) __GPU
{
float_3 _Value1 = *this;
float_3 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
_Value1.z /= _Value2.z;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this float_3 as a float_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) float_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this float_3 as a float_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) float_2 rg;
/// <summary>
/// Returns a float_2 that is composed of element 0, and element 1 of this float_3.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_xy() const __GPU {
return float_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this float_3 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_xy(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 2 of this float_3 as a float_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) float_2 xz;
/// <summary>
/// Property for accessing element 0, and 2 of this float_3 as a float_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) float_2 rb;
/// <summary>
/// Returns a float_2 that is composed of element 0, and element 2 of this float_3.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_xz() const __GPU {
return float_2(_M_x,_M_z);
}
/// <summary>
/// Set element 0, and 2 of this float_3 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_xz(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this float_3 as a float_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) float_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this float_3 as a float_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) float_2 gr;
/// <summary>
/// Returns a float_2 that is composed of element 1, and element 0 of this float_3.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_yx() const __GPU {
return float_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this float_3 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_yx(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 2 of this float_3 as a float_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) float_2 yz;
/// <summary>
/// Property for accessing element 1, and 2 of this float_3 as a float_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) float_2 gb;
/// <summary>
/// Returns a float_2 that is composed of element 1, and element 2 of this float_3.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_yz() const __GPU {
return float_2(_M_y,_M_z);
}
/// <summary>
/// Set element 1, and 2 of this float_3 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_yz(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 0 of this float_3 as a float_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) float_2 zx;
/// <summary>
/// Property for accessing element 2, and 0 of this float_3 as a float_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) float_2 br;
/// <summary>
/// Returns a float_2 that is composed of element 2, and element 0 of this float_3.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_zx() const __GPU {
return float_2(_M_z,_M_x);
}
/// <summary>
/// Set element 2, and 0 of this float_3 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_zx(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 1 of this float_3 as a float_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) float_2 zy;
/// <summary>
/// Property for accessing element 2, and 1 of this float_3 as a float_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) float_2 bg;
/// <summary>
/// Returns a float_2 that is composed of element 2, and element 1 of this float_3.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_zy() const __GPU {
return float_2(_M_z,_M_y);
}
/// <summary>
/// Set element 2, and 1 of this float_3 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_zy(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, 1, and 2 of this float_3 as a float_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) float_3 xyz;
/// <summary>
/// Property for accessing element 0, 1, and 2 of this float_3 as a float_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) float_3 rgb;
/// <summary>
/// Returns a float_3 that is composed of element 0, element 1, and element 2 of this float_3.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_xyz() const __GPU {
return float_3(_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 1, and 2 of this float_3 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_xyz(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 1 of this float_3 as a float_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) float_3 xzy;
/// <summary>
/// Property for accessing element 0, 2, and 1 of this float_3 as a float_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) float_3 rbg;
/// <summary>
/// Returns a float_3 that is composed of element 0, element 2, and element 1 of this float_3.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_xzy() const __GPU {
return float_3(_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 2, and 1 of this float_3 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_xzy(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 2 of this float_3 as a float_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) float_3 yxz;
/// <summary>
/// Property for accessing element 1, 0, and 2 of this float_3 as a float_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) float_3 grb;
/// <summary>
/// Returns a float_3 that is composed of element 1, element 0, and element 2 of this float_3.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_yxz() const __GPU {
return float_3(_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 0, and 2 of this float_3 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_yxz(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 0 of this float_3 as a float_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) float_3 yzx;
/// <summary>
/// Property for accessing element 1, 2, and 0 of this float_3 as a float_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) float_3 gbr;
/// <summary>
/// Returns a float_3 that is composed of element 1, element 2, and element 0 of this float_3.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_yzx() const __GPU {
return float_3(_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 2, and 0 of this float_3 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_yzx(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 1 of this float_3 as a float_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) float_3 zxy;
/// <summary>
/// Property for accessing element 2, 0, and 1 of this float_3 as a float_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) float_3 brg;
/// <summary>
/// Returns a float_3 that is composed of element 2, element 0, and element 1 of this float_3.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_zxy() const __GPU {
return float_3(_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 0, and 1 of this float_3 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_zxy(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 0 of this float_3 as a float_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) float_3 zyx;
/// <summary>
/// Property for accessing element 2, 1, and 0 of this float_3 as a float_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) float_3 bgr;
/// <summary>
/// Returns a float_3 that is composed of element 2, element 1, and element 0 of this float_3.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_zyx() const __GPU {
return float_3(_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 1, and 0 of this float_3 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_zyx(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
};
/// <summary>
/// Represent a short vector of 4 float's.
/// </summary>
class float_4
{
public:
typedef float value_type;
static const int size = 4;
private:
static const _Short_vector_base_type_id _Base_type_id = _Float_type;
private:
value_type _M_x;
value_type _M_y;
value_type _M_z;
value_type _M_w;
public:
/// <summary>
/// Property for accessing element 0 of this float_4 as a float.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) float x;
/// <summary>
/// Property for accessing element 0 of this float_4 as a float.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) float r;
/// <summary>
/// Returns element 0 of this float_4.
/// </summary>
/// <returns>
/// Element 0 of this float_4.
/// </returns>
float get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this float_4.
/// </summary>
/// <returns>
/// Reference to element 0 of this float_4.
/// </returns>
float& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this float_4.
/// </summary>
/// <returns>
/// Reference to element 0 of this float_4.
/// </returns>
float& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this float_4 with a float.
/// </summary>
/// <param name="_Value">
/// a float value.
/// </param>
void set_x(float _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this float_4 as a float.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) float y;
/// <summary>
/// Property for accessing element 1 of this float_4 as a float.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) float g;
/// <summary>
/// Returns element 1 of this float_4.
/// </summary>
/// <returns>
/// Element 1 of this float_4.
/// </returns>
float get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this float_4.
/// </summary>
/// <returns>
/// Reference to element 1 of this float_4.
/// </returns>
float& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this float_4.
/// </summary>
/// <returns>
/// Reference to element 1 of this float_4.
/// </returns>
float& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this float_4 with a float.
/// </summary>
/// <param name="_Value">
/// a float value.
/// </param>
void set_y(float _Value) __GPU
{
_M_y = _Value;
}
/// <summary>
/// Property for accessing element 2 of this float_4 as a float.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) float z;
/// <summary>
/// Property for accessing element 2 of this float_4 as a float.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) float b;
/// <summary>
/// Returns element 2 of this float_4.
/// </summary>
/// <returns>
/// Element 2 of this float_4.
/// </returns>
float get_z() const __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this float_4.
/// </summary>
/// <returns>
/// Reference to element 2 of this float_4.
/// </returns>
float& ref_z() __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this float_4.
/// </summary>
/// <returns>
/// Reference to element 2 of this float_4.
/// </returns>
float& ref_b() __GPU {
return _M_z;
}
/// <summary>
/// Set element 2 of this float_4 with a float.
/// </summary>
/// <param name="_Value">
/// a float value.
/// </param>
void set_z(float _Value) __GPU
{
_M_z = _Value;
}
/// <summary>
/// Property for accessing element 3 of this float_4 as a float.
/// </summary>
__declspec( property( get=get_w, put=set_w) ) float w;
/// <summary>
/// Property for accessing element 3 of this float_4 as a float.
/// </summary>
__declspec( property( get=get_w, put=set_w) ) float a;
/// <summary>
/// Returns element 3 of this float_4.
/// </summary>
/// <returns>
/// Element 3 of this float_4.
/// </returns>
float get_w() const __GPU {
return _M_w;
}
/// <summary>
/// Returns reference to element 3 of this float_4.
/// </summary>
/// <returns>
/// Reference to element 3 of this float_4.
/// </returns>
float& ref_w() __GPU {
return _M_w;
}
/// <summary>
/// Returns reference to element 3 of this float_4.
/// </summary>
/// <returns>
/// Reference to element 3 of this float_4.
/// </returns>
float& ref_a() __GPU {
return _M_w;
}
/// <summary>
/// Set element 3 of this float_4 with a float.
/// </summary>
/// <param name="_Value">
/// a float value.
/// </param>
void set_w(float _Value) __GPU
{
_M_w = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
float_4() __GPU
{
_M_x = 0;
_M_y = 0;
_M_z = 0;
_M_w = 0;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
/// <param name="_V3">
/// The value to initialize element 3.
/// </param>
float_4(float _V0, float _V1, float _V2, float _V3) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
_M_w = _V3;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
float_4(float _V) __GPU
{
_M_x = _V;
_M_y = _V;
_M_z = _V;
_M_w = _V;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_4(const uint_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_4(const int_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_4(const unorm_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_4(const norm_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline float_4(const double_4& _Other) __GPU;
float_4 operator-() const __GPU
{
float_4 _Value = *this;
return float_4(-_Value.x, -_Value.y, -_Value.z, -_Value.w);
}
float_4& operator++() __GPU
{
float_4 _Value = *this;
++_Value._M_x;
++_Value._M_y;
++_Value._M_z;
++_Value._M_w;
*this = _Value;
return *this;
}
float_4 operator++(int) __GPU
{
float_4 _Result = *this;
++(*this);
return _Result;
}
float_4& operator--() __GPU
{
float_4 _Value = *this;
--_Value._M_x;
--_Value._M_y;
--_Value._M_z;
--_Value._M_w;
*this = _Value;
return *this;
}
float_4 operator--(int) __GPU
{
float_4 _Result = *this;
--(*this);
return _Result;
}
float_4& operator+=(const float_4& _Other) __GPU
{
float_4 _Value1 = *this;
float_4 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
_Value1.z += _Value2.z;
_Value1.w += _Value2.w;
*this = _Value1;
return *this;
}
float_4& operator-=(const float_4& _Other) __GPU
{
float_4 _Value1 = *this;
float_4 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
_Value1.z -= _Value2.z;
_Value1.w -= _Value2.w;
*this = _Value1;
return *this;
}
float_4& operator*=(const float_4& _Other) __GPU
{
float_4 _Value1 = *this;
float_4 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
_Value1.z *= _Value2.z;
_Value1.w *= _Value2.w;
*this = _Value1;
return *this;
}
float_4& operator/=(const float_4& _Other) __GPU
{
float_4 _Value1 = *this;
float_4 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
_Value1.z /= _Value2.z;
_Value1.w /= _Value2.w;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) float_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) float_2 rg;
/// <summary>
/// Returns a float_2 that is composed of element 0, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_xy() const __GPU {
return float_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this float_4 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_xy(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 2 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) float_2 xz;
/// <summary>
/// Property for accessing element 0, and 2 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) float_2 rb;
/// <summary>
/// Returns a float_2 that is composed of element 0, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_xz() const __GPU {
return float_2(_M_x,_M_z);
}
/// <summary>
/// Set element 0, and 2 of this float_4 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_xz(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 3 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_xw, put=set_xw) ) float_2 xw;
/// <summary>
/// Property for accessing element 0, and 3 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_xw, put=set_xw) ) float_2 ra;
/// <summary>
/// Returns a float_2 that is composed of element 0, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_xw() const __GPU {
return float_2(_M_x,_M_w);
}
/// <summary>
/// Set element 0, and 3 of this float_4 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_xw(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) float_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) float_2 gr;
/// <summary>
/// Returns a float_2 that is composed of element 1, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_yx() const __GPU {
return float_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this float_4 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_yx(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 2 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) float_2 yz;
/// <summary>
/// Property for accessing element 1, and 2 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) float_2 gb;
/// <summary>
/// Returns a float_2 that is composed of element 1, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_yz() const __GPU {
return float_2(_M_y,_M_z);
}
/// <summary>
/// Set element 1, and 2 of this float_4 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_yz(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 3 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_yw, put=set_yw) ) float_2 yw;
/// <summary>
/// Property for accessing element 1, and 3 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_yw, put=set_yw) ) float_2 ga;
/// <summary>
/// Returns a float_2 that is composed of element 1, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_yw() const __GPU {
return float_2(_M_y,_M_w);
}
/// <summary>
/// Set element 1, and 3 of this float_4 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_yw(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 0 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) float_2 zx;
/// <summary>
/// Property for accessing element 2, and 0 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) float_2 br;
/// <summary>
/// Returns a float_2 that is composed of element 2, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_zx() const __GPU {
return float_2(_M_z,_M_x);
}
/// <summary>
/// Set element 2, and 0 of this float_4 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_zx(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 1 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) float_2 zy;
/// <summary>
/// Property for accessing element 2, and 1 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) float_2 bg;
/// <summary>
/// Returns a float_2 that is composed of element 2, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_zy() const __GPU {
return float_2(_M_z,_M_y);
}
/// <summary>
/// Set element 2, and 1 of this float_4 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_zy(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 3 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_zw, put=set_zw) ) float_2 zw;
/// <summary>
/// Property for accessing element 2, and 3 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_zw, put=set_zw) ) float_2 ba;
/// <summary>
/// Returns a float_2 that is composed of element 2, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_zw() const __GPU {
return float_2(_M_z,_M_w);
}
/// <summary>
/// Set element 2, and 3 of this float_4 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_zw(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 0 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_wx, put=set_wx) ) float_2 wx;
/// <summary>
/// Property for accessing element 3, and 0 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_wx, put=set_wx) ) float_2 ar;
/// <summary>
/// Returns a float_2 that is composed of element 3, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_wx() const __GPU {
return float_2(_M_w,_M_x);
}
/// <summary>
/// Set element 3, and 0 of this float_4 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_wx(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 1 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_wy, put=set_wy) ) float_2 wy;
/// <summary>
/// Property for accessing element 3, and 1 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_wy, put=set_wy) ) float_2 ag;
/// <summary>
/// Returns a float_2 that is composed of element 3, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_wy() const __GPU {
return float_2(_M_w,_M_y);
}
/// <summary>
/// Set element 3, and 1 of this float_4 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_wy(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 2 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_wz, put=set_wz) ) float_2 wz;
/// <summary>
/// Property for accessing element 3, and 2 of this float_4 as a float_2.
/// </summary>
__declspec( property( get=get_wz, put=set_wz) ) float_2 ab;
/// <summary>
/// Returns a float_2 that is composed of element 3, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_2.
/// </returns>
float_2 get_wz() const __GPU {
return float_2(_M_w,_M_z);
}
/// <summary>
/// Set element 3, and 2 of this float_4 with a float_2.
/// </summary>
/// <param name="_Value">
/// a float_2 value.
/// </param>
void set_wz(const float_2& _Value) __GPU
{
float_2 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 0, 1, and 2 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) float_3 xyz;
/// <summary>
/// Property for accessing element 0, 1, and 2 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) float_3 rgb;
/// <summary>
/// Returns a float_3 that is composed of element 0, element 1, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_xyz() const __GPU {
return float_3(_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 1, and 2 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_xyz(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 1, and 3 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_xyw, put=set_xyw) ) float_3 xyw;
/// <summary>
/// Property for accessing element 0, 1, and 3 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_xyw, put=set_xyw) ) float_3 rga;
/// <summary>
/// Returns a float_3 that is composed of element 0, element 1, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_xyw() const __GPU {
return float_3(_M_x,_M_y,_M_w);
}
/// <summary>
/// Set element 0, 1, and 3 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_xyw(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 1 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) float_3 xzy;
/// <summary>
/// Property for accessing element 0, 2, and 1 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) float_3 rbg;
/// <summary>
/// Returns a float_3 that is composed of element 0, element 2, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_xzy() const __GPU {
return float_3(_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 2, and 1 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_xzy(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 3 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_xzw, put=set_xzw) ) float_3 xzw;
/// <summary>
/// Property for accessing element 0, 2, and 3 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_xzw, put=set_xzw) ) float_3 rba;
/// <summary>
/// Returns a float_3 that is composed of element 0, element 2, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_xzw() const __GPU {
return float_3(_M_x,_M_z,_M_w);
}
/// <summary>
/// Set element 0, 2, and 3 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_xzw(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 3, and 1 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_xwy, put=set_xwy) ) float_3 xwy;
/// <summary>
/// Property for accessing element 0, 3, and 1 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_xwy, put=set_xwy) ) float_3 rag;
/// <summary>
/// Returns a float_3 that is composed of element 0, element 3, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_xwy() const __GPU {
return float_3(_M_x,_M_w,_M_y);
}
/// <summary>
/// Set element 0, 3, and 1 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_xwy(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 3, and 2 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_xwz, put=set_xwz) ) float_3 xwz;
/// <summary>
/// Property for accessing element 0, 3, and 2 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_xwz, put=set_xwz) ) float_3 rab;
/// <summary>
/// Returns a float_3 that is composed of element 0, element 3, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_xwz() const __GPU {
return float_3(_M_x,_M_w,_M_z);
}
/// <summary>
/// Set element 0, 3, and 2 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_xwz(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 2 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) float_3 yxz;
/// <summary>
/// Property for accessing element 1, 0, and 2 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) float_3 grb;
/// <summary>
/// Returns a float_3 that is composed of element 1, element 0, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_yxz() const __GPU {
return float_3(_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 0, and 2 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_yxz(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 3 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_yxw, put=set_yxw) ) float_3 yxw;
/// <summary>
/// Property for accessing element 1, 0, and 3 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_yxw, put=set_yxw) ) float_3 gra;
/// <summary>
/// Returns a float_3 that is composed of element 1, element 0, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_yxw() const __GPU {
return float_3(_M_y,_M_x,_M_w);
}
/// <summary>
/// Set element 1, 0, and 3 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_yxw(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 0 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) float_3 yzx;
/// <summary>
/// Property for accessing element 1, 2, and 0 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) float_3 gbr;
/// <summary>
/// Returns a float_3 that is composed of element 1, element 2, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_yzx() const __GPU {
return float_3(_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 2, and 0 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_yzx(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 3 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_yzw, put=set_yzw) ) float_3 yzw;
/// <summary>
/// Property for accessing element 1, 2, and 3 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_yzw, put=set_yzw) ) float_3 gba;
/// <summary>
/// Returns a float_3 that is composed of element 1, element 2, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_yzw() const __GPU {
return float_3(_M_y,_M_z,_M_w);
}
/// <summary>
/// Set element 1, 2, and 3 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_yzw(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 3, and 0 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_ywx, put=set_ywx) ) float_3 ywx;
/// <summary>
/// Property for accessing element 1, 3, and 0 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_ywx, put=set_ywx) ) float_3 gar;
/// <summary>
/// Returns a float_3 that is composed of element 1, element 3, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_ywx() const __GPU {
return float_3(_M_y,_M_w,_M_x);
}
/// <summary>
/// Set element 1, 3, and 0 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_ywx(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 3, and 2 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_ywz, put=set_ywz) ) float_3 ywz;
/// <summary>
/// Property for accessing element 1, 3, and 2 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_ywz, put=set_ywz) ) float_3 gab;
/// <summary>
/// Returns a float_3 that is composed of element 1, element 3, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_ywz() const __GPU {
return float_3(_M_y,_M_w,_M_z);
}
/// <summary>
/// Set element 1, 3, and 2 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_ywz(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 1 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) float_3 zxy;
/// <summary>
/// Property for accessing element 2, 0, and 1 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) float_3 brg;
/// <summary>
/// Returns a float_3 that is composed of element 2, element 0, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_zxy() const __GPU {
return float_3(_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 0, and 1 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_zxy(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 3 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_zxw, put=set_zxw) ) float_3 zxw;
/// <summary>
/// Property for accessing element 2, 0, and 3 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_zxw, put=set_zxw) ) float_3 bra;
/// <summary>
/// Returns a float_3 that is composed of element 2, element 0, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_zxw() const __GPU {
return float_3(_M_z,_M_x,_M_w);
}
/// <summary>
/// Set element 2, 0, and 3 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_zxw(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 0 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) float_3 zyx;
/// <summary>
/// Property for accessing element 2, 1, and 0 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) float_3 bgr;
/// <summary>
/// Returns a float_3 that is composed of element 2, element 1, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_zyx() const __GPU {
return float_3(_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 1, and 0 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_zyx(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 3 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_zyw, put=set_zyw) ) float_3 zyw;
/// <summary>
/// Property for accessing element 2, 1, and 3 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_zyw, put=set_zyw) ) float_3 bga;
/// <summary>
/// Returns a float_3 that is composed of element 2, element 1, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_zyw() const __GPU {
return float_3(_M_z,_M_y,_M_w);
}
/// <summary>
/// Set element 2, 1, and 3 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_zyw(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 3, and 0 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_zwx, put=set_zwx) ) float_3 zwx;
/// <summary>
/// Property for accessing element 2, 3, and 0 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_zwx, put=set_zwx) ) float_3 bar;
/// <summary>
/// Returns a float_3 that is composed of element 2, element 3, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_zwx() const __GPU {
return float_3(_M_z,_M_w,_M_x);
}
/// <summary>
/// Set element 2, 3, and 0 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_zwx(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 3, and 1 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_zwy, put=set_zwy) ) float_3 zwy;
/// <summary>
/// Property for accessing element 2, 3, and 1 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_zwy, put=set_zwy) ) float_3 bag;
/// <summary>
/// Returns a float_3 that is composed of element 2, element 3, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_zwy() const __GPU {
return float_3(_M_z,_M_w,_M_y);
}
/// <summary>
/// Set element 2, 3, and 1 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_zwy(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 0, and 1 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_wxy, put=set_wxy) ) float_3 wxy;
/// <summary>
/// Property for accessing element 3, 0, and 1 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_wxy, put=set_wxy) ) float_3 arg;
/// <summary>
/// Returns a float_3 that is composed of element 3, element 0, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_wxy() const __GPU {
return float_3(_M_w,_M_x,_M_y);
}
/// <summary>
/// Set element 3, 0, and 1 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_wxy(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 0, and 2 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_wxz, put=set_wxz) ) float_3 wxz;
/// <summary>
/// Property for accessing element 3, 0, and 2 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_wxz, put=set_wxz) ) float_3 arb;
/// <summary>
/// Returns a float_3 that is composed of element 3, element 0, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_wxz() const __GPU {
return float_3(_M_w,_M_x,_M_z);
}
/// <summary>
/// Set element 3, 0, and 2 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_wxz(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 1, and 0 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_wyx, put=set_wyx) ) float_3 wyx;
/// <summary>
/// Property for accessing element 3, 1, and 0 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_wyx, put=set_wyx) ) float_3 agr;
/// <summary>
/// Returns a float_3 that is composed of element 3, element 1, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_wyx() const __GPU {
return float_3(_M_w,_M_y,_M_x);
}
/// <summary>
/// Set element 3, 1, and 0 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_wyx(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 1, and 2 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_wyz, put=set_wyz) ) float_3 wyz;
/// <summary>
/// Property for accessing element 3, 1, and 2 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_wyz, put=set_wyz) ) float_3 agb;
/// <summary>
/// Returns a float_3 that is composed of element 3, element 1, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_wyz() const __GPU {
return float_3(_M_w,_M_y,_M_z);
}
/// <summary>
/// Set element 3, 1, and 2 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_wyz(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 2, and 0 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_wzx, put=set_wzx) ) float_3 wzx;
/// <summary>
/// Property for accessing element 3, 2, and 0 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_wzx, put=set_wzx) ) float_3 abr;
/// <summary>
/// Returns a float_3 that is composed of element 3, element 2, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_wzx() const __GPU {
return float_3(_M_w,_M_z,_M_x);
}
/// <summary>
/// Set element 3, 2, and 0 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_wzx(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 2, and 1 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_wzy, put=set_wzy) ) float_3 wzy;
/// <summary>
/// Property for accessing element 3, 2, and 1 of this float_4 as a float_3.
/// </summary>
__declspec( property( get=get_wzy, put=set_wzy) ) float_3 abg;
/// <summary>
/// Returns a float_3 that is composed of element 3, element 2, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_3.
/// </returns>
float_3 get_wzy() const __GPU {
return float_3(_M_w,_M_z,_M_y);
}
/// <summary>
/// Set element 3, 2, and 1 of this float_4 with a float_3.
/// </summary>
/// <param name="_Value">
/// a float_3 value.
/// </param>
void set_wzy(const float_3& _Value) __GPU
{
float_3 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 1, 2, and 3 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_xyzw, put=set_xyzw) ) float_4 xyzw;
/// <summary>
/// Property for accessing element 0, 1, 2, and 3 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_xyzw, put=set_xyzw) ) float_4 rgba;
/// <summary>
/// Returns a float_4 that is composed of element 0, element 1, element 2, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_xyzw() const __GPU {
return float_4(_M_x,_M_y,_M_z,_M_w);
}
/// <summary>
/// Set element 0, 1, 2, and 3 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_xyzw(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 1, 3, and 2 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_xywz, put=set_xywz) ) float_4 xywz;
/// <summary>
/// Property for accessing element 0, 1, 3, and 2 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_xywz, put=set_xywz) ) float_4 rgab;
/// <summary>
/// Returns a float_4 that is composed of element 0, element 1, element 3, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_xywz() const __GPU {
return float_4(_M_x,_M_y,_M_w,_M_z);
}
/// <summary>
/// Set element 0, 1, 3, and 2 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_xywz(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 2, 1, and 3 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_xzyw, put=set_xzyw) ) float_4 xzyw;
/// <summary>
/// Property for accessing element 0, 2, 1, and 3 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_xzyw, put=set_xzyw) ) float_4 rbga;
/// <summary>
/// Returns a float_4 that is composed of element 0, element 2, element 1, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_xzyw() const __GPU {
return float_4(_M_x,_M_z,_M_y,_M_w);
}
/// <summary>
/// Set element 0, 2, 1, and 3 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_xzyw(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 2, 3, and 1 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_xzwy, put=set_xzwy) ) float_4 xzwy;
/// <summary>
/// Property for accessing element 0, 2, 3, and 1 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_xzwy, put=set_xzwy) ) float_4 rbag;
/// <summary>
/// Returns a float_4 that is composed of element 0, element 2, element 3, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_xzwy() const __GPU {
return float_4(_M_x,_M_z,_M_w,_M_y);
}
/// <summary>
/// Set element 0, 2, 3, and 1 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_xzwy(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 3, 1, and 2 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_xwyz, put=set_xwyz) ) float_4 xwyz;
/// <summary>
/// Property for accessing element 0, 3, 1, and 2 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_xwyz, put=set_xwyz) ) float_4 ragb;
/// <summary>
/// Returns a float_4 that is composed of element 0, element 3, element 1, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_xwyz() const __GPU {
return float_4(_M_x,_M_w,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 3, 1, and 2 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_xwyz(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 3, 2, and 1 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_xwzy, put=set_xwzy) ) float_4 xwzy;
/// <summary>
/// Property for accessing element 0, 3, 2, and 1 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_xwzy, put=set_xwzy) ) float_4 rabg;
/// <summary>
/// Returns a float_4 that is composed of element 0, element 3, element 2, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_xwzy() const __GPU {
return float_4(_M_x,_M_w,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 3, 2, and 1 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_xwzy(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 0, 2, and 3 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_yxzw, put=set_yxzw) ) float_4 yxzw;
/// <summary>
/// Property for accessing element 1, 0, 2, and 3 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_yxzw, put=set_yxzw) ) float_4 grba;
/// <summary>
/// Returns a float_4 that is composed of element 1, element 0, element 2, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_yxzw() const __GPU {
return float_4(_M_y,_M_x,_M_z,_M_w);
}
/// <summary>
/// Set element 1, 0, 2, and 3 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_yxzw(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 0, 3, and 2 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_yxwz, put=set_yxwz) ) float_4 yxwz;
/// <summary>
/// Property for accessing element 1, 0, 3, and 2 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_yxwz, put=set_yxwz) ) float_4 grab;
/// <summary>
/// Returns a float_4 that is composed of element 1, element 0, element 3, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_yxwz() const __GPU {
return float_4(_M_y,_M_x,_M_w,_M_z);
}
/// <summary>
/// Set element 1, 0, 3, and 2 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_yxwz(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 2, 0, and 3 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_yzxw, put=set_yzxw) ) float_4 yzxw;
/// <summary>
/// Property for accessing element 1, 2, 0, and 3 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_yzxw, put=set_yzxw) ) float_4 gbra;
/// <summary>
/// Returns a float_4 that is composed of element 1, element 2, element 0, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_yzxw() const __GPU {
return float_4(_M_y,_M_z,_M_x,_M_w);
}
/// <summary>
/// Set element 1, 2, 0, and 3 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_yzxw(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 2, 3, and 0 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_yzwx, put=set_yzwx) ) float_4 yzwx;
/// <summary>
/// Property for accessing element 1, 2, 3, and 0 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_yzwx, put=set_yzwx) ) float_4 gbar;
/// <summary>
/// Returns a float_4 that is composed of element 1, element 2, element 3, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_yzwx() const __GPU {
return float_4(_M_y,_M_z,_M_w,_M_x);
}
/// <summary>
/// Set element 1, 2, 3, and 0 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_yzwx(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 3, 0, and 2 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_ywxz, put=set_ywxz) ) float_4 ywxz;
/// <summary>
/// Property for accessing element 1, 3, 0, and 2 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_ywxz, put=set_ywxz) ) float_4 garb;
/// <summary>
/// Returns a float_4 that is composed of element 1, element 3, element 0, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_ywxz() const __GPU {
return float_4(_M_y,_M_w,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 3, 0, and 2 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_ywxz(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 3, 2, and 0 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_ywzx, put=set_ywzx) ) float_4 ywzx;
/// <summary>
/// Property for accessing element 1, 3, 2, and 0 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_ywzx, put=set_ywzx) ) float_4 gabr;
/// <summary>
/// Returns a float_4 that is composed of element 1, element 3, element 2, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_ywzx() const __GPU {
return float_4(_M_y,_M_w,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 3, 2, and 0 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_ywzx(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 0, 1, and 3 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_zxyw, put=set_zxyw) ) float_4 zxyw;
/// <summary>
/// Property for accessing element 2, 0, 1, and 3 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_zxyw, put=set_zxyw) ) float_4 brga;
/// <summary>
/// Returns a float_4 that is composed of element 2, element 0, element 1, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_zxyw() const __GPU {
return float_4(_M_z,_M_x,_M_y,_M_w);
}
/// <summary>
/// Set element 2, 0, 1, and 3 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_zxyw(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 0, 3, and 1 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_zxwy, put=set_zxwy) ) float_4 zxwy;
/// <summary>
/// Property for accessing element 2, 0, 3, and 1 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_zxwy, put=set_zxwy) ) float_4 brag;
/// <summary>
/// Returns a float_4 that is composed of element 2, element 0, element 3, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_zxwy() const __GPU {
return float_4(_M_z,_M_x,_M_w,_M_y);
}
/// <summary>
/// Set element 2, 0, 3, and 1 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_zxwy(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 1, 0, and 3 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_zyxw, put=set_zyxw) ) float_4 zyxw;
/// <summary>
/// Property for accessing element 2, 1, 0, and 3 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_zyxw, put=set_zyxw) ) float_4 bgra;
/// <summary>
/// Returns a float_4 that is composed of element 2, element 1, element 0, and element 3 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_zyxw() const __GPU {
return float_4(_M_z,_M_y,_M_x,_M_w);
}
/// <summary>
/// Set element 2, 1, 0, and 3 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_zyxw(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 1, 3, and 0 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_zywx, put=set_zywx) ) float_4 zywx;
/// <summary>
/// Property for accessing element 2, 1, 3, and 0 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_zywx, put=set_zywx) ) float_4 bgar;
/// <summary>
/// Returns a float_4 that is composed of element 2, element 1, element 3, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_zywx() const __GPU {
return float_4(_M_z,_M_y,_M_w,_M_x);
}
/// <summary>
/// Set element 2, 1, 3, and 0 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_zywx(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 3, 0, and 1 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_zwxy, put=set_zwxy) ) float_4 zwxy;
/// <summary>
/// Property for accessing element 2, 3, 0, and 1 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_zwxy, put=set_zwxy) ) float_4 barg;
/// <summary>
/// Returns a float_4 that is composed of element 2, element 3, element 0, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_zwxy() const __GPU {
return float_4(_M_z,_M_w,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 3, 0, and 1 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_zwxy(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 3, 1, and 0 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_zwyx, put=set_zwyx) ) float_4 zwyx;
/// <summary>
/// Property for accessing element 2, 3, 1, and 0 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_zwyx, put=set_zwyx) ) float_4 bagr;
/// <summary>
/// Returns a float_4 that is composed of element 2, element 3, element 1, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_zwyx() const __GPU {
return float_4(_M_z,_M_w,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 3, 1, and 0 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_zwyx(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 0, 1, and 2 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_wxyz, put=set_wxyz) ) float_4 wxyz;
/// <summary>
/// Property for accessing element 3, 0, 1, and 2 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_wxyz, put=set_wxyz) ) float_4 argb;
/// <summary>
/// Returns a float_4 that is composed of element 3, element 0, element 1, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_wxyz() const __GPU {
return float_4(_M_w,_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 3, 0, 1, and 2 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_wxyz(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 0, 2, and 1 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_wxzy, put=set_wxzy) ) float_4 wxzy;
/// <summary>
/// Property for accessing element 3, 0, 2, and 1 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_wxzy, put=set_wxzy) ) float_4 arbg;
/// <summary>
/// Returns a float_4 that is composed of element 3, element 0, element 2, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_wxzy() const __GPU {
return float_4(_M_w,_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 3, 0, 2, and 1 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_wxzy(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 1, 0, and 2 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_wyxz, put=set_wyxz) ) float_4 wyxz;
/// <summary>
/// Property for accessing element 3, 1, 0, and 2 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_wyxz, put=set_wyxz) ) float_4 agrb;
/// <summary>
/// Returns a float_4 that is composed of element 3, element 1, element 0, and element 2 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_wyxz() const __GPU {
return float_4(_M_w,_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 3, 1, 0, and 2 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_wyxz(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 1, 2, and 0 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_wyzx, put=set_wyzx) ) float_4 wyzx;
/// <summary>
/// Property for accessing element 3, 1, 2, and 0 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_wyzx, put=set_wyzx) ) float_4 agbr;
/// <summary>
/// Returns a float_4 that is composed of element 3, element 1, element 2, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_wyzx() const __GPU {
return float_4(_M_w,_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 3, 1, 2, and 0 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_wyzx(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 2, 0, and 1 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_wzxy, put=set_wzxy) ) float_4 wzxy;
/// <summary>
/// Property for accessing element 3, 2, 0, and 1 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_wzxy, put=set_wzxy) ) float_4 abrg;
/// <summary>
/// Returns a float_4 that is composed of element 3, element 2, element 0, and element 1 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_wzxy() const __GPU {
return float_4(_M_w,_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 3, 2, 0, and 1 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_wzxy(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 2, 1, and 0 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_wzyx, put=set_wzyx) ) float_4 wzyx;
/// <summary>
/// Property for accessing element 3, 2, 1, and 0 of this float_4 as a float_4.
/// </summary>
__declspec( property( get=get_wzyx, put=set_wzyx) ) float_4 abgr;
/// <summary>
/// Returns a float_4 that is composed of element 3, element 2, element 1, and element 0 of this float_4.
/// </summary>
/// <returns>
/// a float_4.
/// </returns>
float_4 get_wzyx() const __GPU {
return float_4(_M_w,_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 3, 2, 1, and 0 of this float_4 with a float_4.
/// </summary>
/// <param name="_Value">
/// a float_4 value.
/// </param>
void set_wzyx(const float_4& _Value) __GPU
{
float_4 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
_M_x = _Val.w;
}
};
/// <summary>
/// Represent a short vector of 2 unorm's.
/// </summary>
class unorm_2
{
public:
typedef unorm value_type;
static const int size = 2;
private:
static const _Short_vector_base_type_id _Base_type_id = _Unorm_type;
private:
value_type _M_x;
value_type _M_y;
public:
/// <summary>
/// Property for accessing element 0 of this unorm_2 as a unorm.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) unorm x;
/// <summary>
/// Property for accessing element 0 of this unorm_2 as a unorm.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) unorm r;
/// <summary>
/// Returns element 0 of this unorm_2.
/// </summary>
/// <returns>
/// Element 0 of this unorm_2.
/// </returns>
unorm get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this unorm_2.
/// </summary>
/// <returns>
/// Reference to element 0 of this unorm_2.
/// </returns>
unorm& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this unorm_2.
/// </summary>
/// <returns>
/// Reference to element 0 of this unorm_2.
/// </returns>
unorm& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this unorm_2 with a unorm.
/// </summary>
/// <param name="_Value">
/// a unorm value.
/// </param>
void set_x(unorm _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this unorm_2 as a unorm.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) unorm y;
/// <summary>
/// Property for accessing element 1 of this unorm_2 as a unorm.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) unorm g;
/// <summary>
/// Returns element 1 of this unorm_2.
/// </summary>
/// <returns>
/// Element 1 of this unorm_2.
/// </returns>
unorm get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this unorm_2.
/// </summary>
/// <returns>
/// Reference to element 1 of this unorm_2.
/// </returns>
unorm& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this unorm_2.
/// </summary>
/// <returns>
/// Reference to element 1 of this unorm_2.
/// </returns>
unorm& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this unorm_2 with a unorm.
/// </summary>
/// <param name="_Value">
/// a unorm value.
/// </param>
void set_y(unorm _Value) __GPU
{
_M_y = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
unorm_2() __GPU
{
_M_x = unorm(0.0f);
_M_y = unorm(0.0f);
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
unorm_2(unorm _V0, unorm _V1) __GPU
{
_M_x = _V0;
_M_y = _V1;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
unorm_2(float _V0, float _V1) __GPU
{
_M_x = unorm(_V0);
_M_y = unorm(_V1);
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
unorm_2(unorm _V) __GPU
{
_M_x = _V;
_M_y = _V;
}
explicit unorm_2(float _V) __GPU
{
_M_x = unorm(_V);
_M_y = unorm(_V);
}
/// <summary>
/// Copy constructor.
/// </summary>
/// <param name="_Other">
/// The object to copy from.
/// </param>
unorm_2(const unorm_2& _Other) __GPU
{
*this = _Other;
}
unorm_2& operator=(const unorm_2& _Other) __GPU
{
_M_x = _Other._M_x;
_M_y = _Other._M_y;
return *this;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_2(const uint_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_2(const int_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_2(const float_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_2(const norm_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_2(const double_2& _Other) __GPU;
unorm_2& operator++() __GPU
{
unorm_2 _Value = *this;
++_Value._M_x;
++_Value._M_y;
*this = _Value;
return *this;
}
unorm_2 operator++(int) __GPU
{
unorm_2 _Result = *this;
++(*this);
return _Result;
}
unorm_2& operator--() __GPU
{
unorm_2 _Value = *this;
--_Value._M_x;
--_Value._M_y;
*this = _Value;
return *this;
}
unorm_2 operator--(int) __GPU
{
unorm_2 _Result = *this;
--(*this);
return _Result;
}
unorm_2& operator+=(const unorm_2& _Other) __GPU
{
unorm_2 _Value1 = *this;
unorm_2 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
*this = _Value1;
return *this;
}
unorm_2& operator-=(const unorm_2& _Other) __GPU
{
unorm_2 _Value1 = *this;
unorm_2 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
*this = _Value1;
return *this;
}
unorm_2& operator*=(const unorm_2& _Other) __GPU
{
unorm_2 _Value1 = *this;
unorm_2 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
*this = _Value1;
return *this;
}
unorm_2& operator/=(const unorm_2& _Other) __GPU
{
unorm_2 _Value1 = *this;
unorm_2 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this unorm_2 as a unorm_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) unorm_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this unorm_2 as a unorm_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) unorm_2 rg;
/// <summary>
/// Returns a unorm_2 that is composed of element 0, and element 1 of this unorm_2.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_xy() const __GPU {
return unorm_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this unorm_2 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_xy(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this unorm_2 as a unorm_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) unorm_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this unorm_2 as a unorm_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) unorm_2 gr;
/// <summary>
/// Returns a unorm_2 that is composed of element 1, and element 0 of this unorm_2.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_yx() const __GPU {
return unorm_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this unorm_2 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_yx(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
};
/// <summary>
/// Represent a short vector of 3 unorm's.
/// </summary>
class unorm_3
{
public:
typedef unorm value_type;
static const int size = 3;
private:
static const _Short_vector_base_type_id _Base_type_id = _Unorm_type;
private:
value_type _M_x;
value_type _M_y;
value_type _M_z;
public:
/// <summary>
/// Property for accessing element 0 of this unorm_3 as a unorm.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) unorm x;
/// <summary>
/// Property for accessing element 0 of this unorm_3 as a unorm.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) unorm r;
/// <summary>
/// Returns element 0 of this unorm_3.
/// </summary>
/// <returns>
/// Element 0 of this unorm_3.
/// </returns>
unorm get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this unorm_3.
/// </summary>
/// <returns>
/// Reference to element 0 of this unorm_3.
/// </returns>
unorm& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this unorm_3.
/// </summary>
/// <returns>
/// Reference to element 0 of this unorm_3.
/// </returns>
unorm& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this unorm_3 with a unorm.
/// </summary>
/// <param name="_Value">
/// a unorm value.
/// </param>
void set_x(unorm _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this unorm_3 as a unorm.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) unorm y;
/// <summary>
/// Property for accessing element 1 of this unorm_3 as a unorm.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) unorm g;
/// <summary>
/// Returns element 1 of this unorm_3.
/// </summary>
/// <returns>
/// Element 1 of this unorm_3.
/// </returns>
unorm get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this unorm_3.
/// </summary>
/// <returns>
/// Reference to element 1 of this unorm_3.
/// </returns>
unorm& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this unorm_3.
/// </summary>
/// <returns>
/// Reference to element 1 of this unorm_3.
/// </returns>
unorm& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this unorm_3 with a unorm.
/// </summary>
/// <param name="_Value">
/// a unorm value.
/// </param>
void set_y(unorm _Value) __GPU
{
_M_y = _Value;
}
/// <summary>
/// Property for accessing element 2 of this unorm_3 as a unorm.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) unorm z;
/// <summary>
/// Property for accessing element 2 of this unorm_3 as a unorm.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) unorm b;
/// <summary>
/// Returns element 2 of this unorm_3.
/// </summary>
/// <returns>
/// Element 2 of this unorm_3.
/// </returns>
unorm get_z() const __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this unorm_3.
/// </summary>
/// <returns>
/// Reference to element 2 of this unorm_3.
/// </returns>
unorm& ref_z() __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this unorm_3.
/// </summary>
/// <returns>
/// Reference to element 2 of this unorm_3.
/// </returns>
unorm& ref_b() __GPU {
return _M_z;
}
/// <summary>
/// Set element 2 of this unorm_3 with a unorm.
/// </summary>
/// <param name="_Value">
/// a unorm value.
/// </param>
void set_z(unorm _Value) __GPU
{
_M_z = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
unorm_3() __GPU
{
_M_x = unorm(0.0f);
_M_y = unorm(0.0f);
_M_z = unorm(0.0f);
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
unorm_3(unorm _V0, unorm _V1, unorm _V2) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
unorm_3(float _V0, float _V1, float _V2) __GPU
{
_M_x = unorm(_V0);
_M_y = unorm(_V1);
_M_z = unorm(_V2);
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
unorm_3(unorm _V) __GPU
{
_M_x = _V;
_M_y = _V;
_M_z = _V;
}
explicit unorm_3(float _V) __GPU
{
_M_x = unorm(_V);
_M_y = unorm(_V);
_M_z = unorm(_V);
}
/// <summary>
/// Copy constructor.
/// </summary>
/// <param name="_Other">
/// The object to copy from.
/// </param>
unorm_3(const unorm_3& _Other) __GPU
{
*this = _Other;
}
unorm_3& operator=(const unorm_3& _Other) __GPU
{
_M_x = _Other._M_x;
_M_y = _Other._M_y;
_M_z = _Other._M_z;
return *this;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_3(const uint_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_3(const int_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_3(const float_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_3(const norm_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_3(const double_3& _Other) __GPU;
unorm_3& operator++() __GPU
{
unorm_3 _Value = *this;
++_Value._M_x;
++_Value._M_y;
++_Value._M_z;
*this = _Value;
return *this;
}
unorm_3 operator++(int) __GPU
{
unorm_3 _Result = *this;
++(*this);
return _Result;
}
unorm_3& operator--() __GPU
{
unorm_3 _Value = *this;
--_Value._M_x;
--_Value._M_y;
--_Value._M_z;
*this = _Value;
return *this;
}
unorm_3 operator--(int) __GPU
{
unorm_3 _Result = *this;
--(*this);
return _Result;
}
unorm_3& operator+=(const unorm_3& _Other) __GPU
{
unorm_3 _Value1 = *this;
unorm_3 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
_Value1.z += _Value2.z;
*this = _Value1;
return *this;
}
unorm_3& operator-=(const unorm_3& _Other) __GPU
{
unorm_3 _Value1 = *this;
unorm_3 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
_Value1.z -= _Value2.z;
*this = _Value1;
return *this;
}
unorm_3& operator*=(const unorm_3& _Other) __GPU
{
unorm_3 _Value1 = *this;
unorm_3 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
_Value1.z *= _Value2.z;
*this = _Value1;
return *this;
}
unorm_3& operator/=(const unorm_3& _Other) __GPU
{
unorm_3 _Value1 = *this;
unorm_3 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
_Value1.z /= _Value2.z;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this unorm_3 as a unorm_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) unorm_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this unorm_3 as a unorm_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) unorm_2 rg;
/// <summary>
/// Returns a unorm_2 that is composed of element 0, and element 1 of this unorm_3.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_xy() const __GPU {
return unorm_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this unorm_3 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_xy(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 2 of this unorm_3 as a unorm_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) unorm_2 xz;
/// <summary>
/// Property for accessing element 0, and 2 of this unorm_3 as a unorm_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) unorm_2 rb;
/// <summary>
/// Returns a unorm_2 that is composed of element 0, and element 2 of this unorm_3.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_xz() const __GPU {
return unorm_2(_M_x,_M_z);
}
/// <summary>
/// Set element 0, and 2 of this unorm_3 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_xz(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this unorm_3 as a unorm_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) unorm_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this unorm_3 as a unorm_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) unorm_2 gr;
/// <summary>
/// Returns a unorm_2 that is composed of element 1, and element 0 of this unorm_3.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_yx() const __GPU {
return unorm_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this unorm_3 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_yx(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 2 of this unorm_3 as a unorm_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) unorm_2 yz;
/// <summary>
/// Property for accessing element 1, and 2 of this unorm_3 as a unorm_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) unorm_2 gb;
/// <summary>
/// Returns a unorm_2 that is composed of element 1, and element 2 of this unorm_3.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_yz() const __GPU {
return unorm_2(_M_y,_M_z);
}
/// <summary>
/// Set element 1, and 2 of this unorm_3 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_yz(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 0 of this unorm_3 as a unorm_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) unorm_2 zx;
/// <summary>
/// Property for accessing element 2, and 0 of this unorm_3 as a unorm_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) unorm_2 br;
/// <summary>
/// Returns a unorm_2 that is composed of element 2, and element 0 of this unorm_3.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_zx() const __GPU {
return unorm_2(_M_z,_M_x);
}
/// <summary>
/// Set element 2, and 0 of this unorm_3 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_zx(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 1 of this unorm_3 as a unorm_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) unorm_2 zy;
/// <summary>
/// Property for accessing element 2, and 1 of this unorm_3 as a unorm_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) unorm_2 bg;
/// <summary>
/// Returns a unorm_2 that is composed of element 2, and element 1 of this unorm_3.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_zy() const __GPU {
return unorm_2(_M_z,_M_y);
}
/// <summary>
/// Set element 2, and 1 of this unorm_3 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_zy(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, 1, and 2 of this unorm_3 as a unorm_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) unorm_3 xyz;
/// <summary>
/// Property for accessing element 0, 1, and 2 of this unorm_3 as a unorm_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) unorm_3 rgb;
/// <summary>
/// Returns a unorm_3 that is composed of element 0, element 1, and element 2 of this unorm_3.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_xyz() const __GPU {
return unorm_3(_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 1, and 2 of this unorm_3 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_xyz(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 1 of this unorm_3 as a unorm_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) unorm_3 xzy;
/// <summary>
/// Property for accessing element 0, 2, and 1 of this unorm_3 as a unorm_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) unorm_3 rbg;
/// <summary>
/// Returns a unorm_3 that is composed of element 0, element 2, and element 1 of this unorm_3.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_xzy() const __GPU {
return unorm_3(_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 2, and 1 of this unorm_3 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_xzy(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 2 of this unorm_3 as a unorm_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) unorm_3 yxz;
/// <summary>
/// Property for accessing element 1, 0, and 2 of this unorm_3 as a unorm_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) unorm_3 grb;
/// <summary>
/// Returns a unorm_3 that is composed of element 1, element 0, and element 2 of this unorm_3.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_yxz() const __GPU {
return unorm_3(_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 0, and 2 of this unorm_3 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_yxz(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 0 of this unorm_3 as a unorm_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) unorm_3 yzx;
/// <summary>
/// Property for accessing element 1, 2, and 0 of this unorm_3 as a unorm_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) unorm_3 gbr;
/// <summary>
/// Returns a unorm_3 that is composed of element 1, element 2, and element 0 of this unorm_3.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_yzx() const __GPU {
return unorm_3(_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 2, and 0 of this unorm_3 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_yzx(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 1 of this unorm_3 as a unorm_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) unorm_3 zxy;
/// <summary>
/// Property for accessing element 2, 0, and 1 of this unorm_3 as a unorm_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) unorm_3 brg;
/// <summary>
/// Returns a unorm_3 that is composed of element 2, element 0, and element 1 of this unorm_3.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_zxy() const __GPU {
return unorm_3(_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 0, and 1 of this unorm_3 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_zxy(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 0 of this unorm_3 as a unorm_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) unorm_3 zyx;
/// <summary>
/// Property for accessing element 2, 1, and 0 of this unorm_3 as a unorm_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) unorm_3 bgr;
/// <summary>
/// Returns a unorm_3 that is composed of element 2, element 1, and element 0 of this unorm_3.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_zyx() const __GPU {
return unorm_3(_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 1, and 0 of this unorm_3 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_zyx(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
};
/// <summary>
/// Represent a short vector of 4 unorm's.
/// </summary>
class unorm_4
{
public:
typedef unorm value_type;
static const int size = 4;
private:
static const _Short_vector_base_type_id _Base_type_id = _Unorm_type;
private:
value_type _M_x;
value_type _M_y;
value_type _M_z;
value_type _M_w;
public:
/// <summary>
/// Property for accessing element 0 of this unorm_4 as a unorm.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) unorm x;
/// <summary>
/// Property for accessing element 0 of this unorm_4 as a unorm.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) unorm r;
/// <summary>
/// Returns element 0 of this unorm_4.
/// </summary>
/// <returns>
/// Element 0 of this unorm_4.
/// </returns>
unorm get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this unorm_4.
/// </summary>
/// <returns>
/// Reference to element 0 of this unorm_4.
/// </returns>
unorm& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this unorm_4.
/// </summary>
/// <returns>
/// Reference to element 0 of this unorm_4.
/// </returns>
unorm& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this unorm_4 with a unorm.
/// </summary>
/// <param name="_Value">
/// a unorm value.
/// </param>
void set_x(unorm _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this unorm_4 as a unorm.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) unorm y;
/// <summary>
/// Property for accessing element 1 of this unorm_4 as a unorm.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) unorm g;
/// <summary>
/// Returns element 1 of this unorm_4.
/// </summary>
/// <returns>
/// Element 1 of this unorm_4.
/// </returns>
unorm get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this unorm_4.
/// </summary>
/// <returns>
/// Reference to element 1 of this unorm_4.
/// </returns>
unorm& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this unorm_4.
/// </summary>
/// <returns>
/// Reference to element 1 of this unorm_4.
/// </returns>
unorm& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this unorm_4 with a unorm.
/// </summary>
/// <param name="_Value">
/// a unorm value.
/// </param>
void set_y(unorm _Value) __GPU
{
_M_y = _Value;
}
/// <summary>
/// Property for accessing element 2 of this unorm_4 as a unorm.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) unorm z;
/// <summary>
/// Property for accessing element 2 of this unorm_4 as a unorm.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) unorm b;
/// <summary>
/// Returns element 2 of this unorm_4.
/// </summary>
/// <returns>
/// Element 2 of this unorm_4.
/// </returns>
unorm get_z() const __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this unorm_4.
/// </summary>
/// <returns>
/// Reference to element 2 of this unorm_4.
/// </returns>
unorm& ref_z() __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this unorm_4.
/// </summary>
/// <returns>
/// Reference to element 2 of this unorm_4.
/// </returns>
unorm& ref_b() __GPU {
return _M_z;
}
/// <summary>
/// Set element 2 of this unorm_4 with a unorm.
/// </summary>
/// <param name="_Value">
/// a unorm value.
/// </param>
void set_z(unorm _Value) __GPU
{
_M_z = _Value;
}
/// <summary>
/// Property for accessing element 3 of this unorm_4 as a unorm.
/// </summary>
__declspec( property( get=get_w, put=set_w) ) unorm w;
/// <summary>
/// Property for accessing element 3 of this unorm_4 as a unorm.
/// </summary>
__declspec( property( get=get_w, put=set_w) ) unorm a;
/// <summary>
/// Returns element 3 of this unorm_4.
/// </summary>
/// <returns>
/// Element 3 of this unorm_4.
/// </returns>
unorm get_w() const __GPU {
return _M_w;
}
/// <summary>
/// Returns reference to element 3 of this unorm_4.
/// </summary>
/// <returns>
/// Reference to element 3 of this unorm_4.
/// </returns>
unorm& ref_w() __GPU {
return _M_w;
}
/// <summary>
/// Returns reference to element 3 of this unorm_4.
/// </summary>
/// <returns>
/// Reference to element 3 of this unorm_4.
/// </returns>
unorm& ref_a() __GPU {
return _M_w;
}
/// <summary>
/// Set element 3 of this unorm_4 with a unorm.
/// </summary>
/// <param name="_Value">
/// a unorm value.
/// </param>
void set_w(unorm _Value) __GPU
{
_M_w = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
unorm_4() __GPU
{
_M_x = unorm(0.0f);
_M_y = unorm(0.0f);
_M_z = unorm(0.0f);
_M_w = unorm(0.0f);
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
/// <param name="_V3">
/// The value to initialize element 3.
/// </param>
unorm_4(unorm _V0, unorm _V1, unorm _V2, unorm _V3) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
_M_w = _V3;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
/// <param name="_V3">
/// The value to initialize element 3.
/// </param>
unorm_4(float _V0, float _V1, float _V2, float _V3) __GPU
{
_M_x = unorm(_V0);
_M_y = unorm(_V1);
_M_z = unorm(_V2);
_M_w = unorm(_V3);
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
unorm_4(unorm _V) __GPU
{
_M_x = _V;
_M_y = _V;
_M_z = _V;
_M_w = _V;
}
explicit unorm_4(float _V) __GPU
{
_M_x = unorm(_V);
_M_y = unorm(_V);
_M_z = unorm(_V);
_M_w = unorm(_V);
}
/// <summary>
/// Copy constructor.
/// </summary>
/// <param name="_Other">
/// The object to copy from.
/// </param>
unorm_4(const unorm_4& _Other) __GPU
{
*this = _Other;
}
unorm_4& operator=(const unorm_4& _Other) __GPU
{
_M_x = _Other._M_x;
_M_y = _Other._M_y;
_M_z = _Other._M_z;
_M_w = _Other._M_w;
return *this;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_4(const uint_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_4(const int_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_4(const float_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_4(const norm_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline unorm_4(const double_4& _Other) __GPU;
unorm_4& operator++() __GPU
{
unorm_4 _Value = *this;
++_Value._M_x;
++_Value._M_y;
++_Value._M_z;
++_Value._M_w;
*this = _Value;
return *this;
}
unorm_4 operator++(int) __GPU
{
unorm_4 _Result = *this;
++(*this);
return _Result;
}
unorm_4& operator--() __GPU
{
unorm_4 _Value = *this;
--_Value._M_x;
--_Value._M_y;
--_Value._M_z;
--_Value._M_w;
*this = _Value;
return *this;
}
unorm_4 operator--(int) __GPU
{
unorm_4 _Result = *this;
--(*this);
return _Result;
}
unorm_4& operator+=(const unorm_4& _Other) __GPU
{
unorm_4 _Value1 = *this;
unorm_4 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
_Value1.z += _Value2.z;
_Value1.w += _Value2.w;
*this = _Value1;
return *this;
}
unorm_4& operator-=(const unorm_4& _Other) __GPU
{
unorm_4 _Value1 = *this;
unorm_4 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
_Value1.z -= _Value2.z;
_Value1.w -= _Value2.w;
*this = _Value1;
return *this;
}
unorm_4& operator*=(const unorm_4& _Other) __GPU
{
unorm_4 _Value1 = *this;
unorm_4 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
_Value1.z *= _Value2.z;
_Value1.w *= _Value2.w;
*this = _Value1;
return *this;
}
unorm_4& operator/=(const unorm_4& _Other) __GPU
{
unorm_4 _Value1 = *this;
unorm_4 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
_Value1.z /= _Value2.z;
_Value1.w /= _Value2.w;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) unorm_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) unorm_2 rg;
/// <summary>
/// Returns a unorm_2 that is composed of element 0, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_xy() const __GPU {
return unorm_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this unorm_4 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_xy(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 2 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) unorm_2 xz;
/// <summary>
/// Property for accessing element 0, and 2 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) unorm_2 rb;
/// <summary>
/// Returns a unorm_2 that is composed of element 0, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_xz() const __GPU {
return unorm_2(_M_x,_M_z);
}
/// <summary>
/// Set element 0, and 2 of this unorm_4 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_xz(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 3 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_xw, put=set_xw) ) unorm_2 xw;
/// <summary>
/// Property for accessing element 0, and 3 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_xw, put=set_xw) ) unorm_2 ra;
/// <summary>
/// Returns a unorm_2 that is composed of element 0, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_xw() const __GPU {
return unorm_2(_M_x,_M_w);
}
/// <summary>
/// Set element 0, and 3 of this unorm_4 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_xw(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) unorm_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) unorm_2 gr;
/// <summary>
/// Returns a unorm_2 that is composed of element 1, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_yx() const __GPU {
return unorm_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this unorm_4 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_yx(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 2 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) unorm_2 yz;
/// <summary>
/// Property for accessing element 1, and 2 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) unorm_2 gb;
/// <summary>
/// Returns a unorm_2 that is composed of element 1, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_yz() const __GPU {
return unorm_2(_M_y,_M_z);
}
/// <summary>
/// Set element 1, and 2 of this unorm_4 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_yz(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 3 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_yw, put=set_yw) ) unorm_2 yw;
/// <summary>
/// Property for accessing element 1, and 3 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_yw, put=set_yw) ) unorm_2 ga;
/// <summary>
/// Returns a unorm_2 that is composed of element 1, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_yw() const __GPU {
return unorm_2(_M_y,_M_w);
}
/// <summary>
/// Set element 1, and 3 of this unorm_4 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_yw(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 0 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) unorm_2 zx;
/// <summary>
/// Property for accessing element 2, and 0 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) unorm_2 br;
/// <summary>
/// Returns a unorm_2 that is composed of element 2, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_zx() const __GPU {
return unorm_2(_M_z,_M_x);
}
/// <summary>
/// Set element 2, and 0 of this unorm_4 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_zx(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 1 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) unorm_2 zy;
/// <summary>
/// Property for accessing element 2, and 1 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) unorm_2 bg;
/// <summary>
/// Returns a unorm_2 that is composed of element 2, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_zy() const __GPU {
return unorm_2(_M_z,_M_y);
}
/// <summary>
/// Set element 2, and 1 of this unorm_4 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_zy(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 3 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_zw, put=set_zw) ) unorm_2 zw;
/// <summary>
/// Property for accessing element 2, and 3 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_zw, put=set_zw) ) unorm_2 ba;
/// <summary>
/// Returns a unorm_2 that is composed of element 2, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_zw() const __GPU {
return unorm_2(_M_z,_M_w);
}
/// <summary>
/// Set element 2, and 3 of this unorm_4 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_zw(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 0 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_wx, put=set_wx) ) unorm_2 wx;
/// <summary>
/// Property for accessing element 3, and 0 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_wx, put=set_wx) ) unorm_2 ar;
/// <summary>
/// Returns a unorm_2 that is composed of element 3, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_wx() const __GPU {
return unorm_2(_M_w,_M_x);
}
/// <summary>
/// Set element 3, and 0 of this unorm_4 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_wx(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 1 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_wy, put=set_wy) ) unorm_2 wy;
/// <summary>
/// Property for accessing element 3, and 1 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_wy, put=set_wy) ) unorm_2 ag;
/// <summary>
/// Returns a unorm_2 that is composed of element 3, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_wy() const __GPU {
return unorm_2(_M_w,_M_y);
}
/// <summary>
/// Set element 3, and 1 of this unorm_4 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_wy(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 2 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_wz, put=set_wz) ) unorm_2 wz;
/// <summary>
/// Property for accessing element 3, and 2 of this unorm_4 as a unorm_2.
/// </summary>
__declspec( property( get=get_wz, put=set_wz) ) unorm_2 ab;
/// <summary>
/// Returns a unorm_2 that is composed of element 3, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_2.
/// </returns>
unorm_2 get_wz() const __GPU {
return unorm_2(_M_w,_M_z);
}
/// <summary>
/// Set element 3, and 2 of this unorm_4 with a unorm_2.
/// </summary>
/// <param name="_Value">
/// a unorm_2 value.
/// </param>
void set_wz(const unorm_2& _Value) __GPU
{
unorm_2 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 0, 1, and 2 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) unorm_3 xyz;
/// <summary>
/// Property for accessing element 0, 1, and 2 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) unorm_3 rgb;
/// <summary>
/// Returns a unorm_3 that is composed of element 0, element 1, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_xyz() const __GPU {
return unorm_3(_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 1, and 2 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_xyz(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 1, and 3 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_xyw, put=set_xyw) ) unorm_3 xyw;
/// <summary>
/// Property for accessing element 0, 1, and 3 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_xyw, put=set_xyw) ) unorm_3 rga;
/// <summary>
/// Returns a unorm_3 that is composed of element 0, element 1, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_xyw() const __GPU {
return unorm_3(_M_x,_M_y,_M_w);
}
/// <summary>
/// Set element 0, 1, and 3 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_xyw(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 1 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) unorm_3 xzy;
/// <summary>
/// Property for accessing element 0, 2, and 1 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) unorm_3 rbg;
/// <summary>
/// Returns a unorm_3 that is composed of element 0, element 2, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_xzy() const __GPU {
return unorm_3(_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 2, and 1 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_xzy(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 3 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_xzw, put=set_xzw) ) unorm_3 xzw;
/// <summary>
/// Property for accessing element 0, 2, and 3 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_xzw, put=set_xzw) ) unorm_3 rba;
/// <summary>
/// Returns a unorm_3 that is composed of element 0, element 2, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_xzw() const __GPU {
return unorm_3(_M_x,_M_z,_M_w);
}
/// <summary>
/// Set element 0, 2, and 3 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_xzw(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 3, and 1 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_xwy, put=set_xwy) ) unorm_3 xwy;
/// <summary>
/// Property for accessing element 0, 3, and 1 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_xwy, put=set_xwy) ) unorm_3 rag;
/// <summary>
/// Returns a unorm_3 that is composed of element 0, element 3, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_xwy() const __GPU {
return unorm_3(_M_x,_M_w,_M_y);
}
/// <summary>
/// Set element 0, 3, and 1 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_xwy(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 3, and 2 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_xwz, put=set_xwz) ) unorm_3 xwz;
/// <summary>
/// Property for accessing element 0, 3, and 2 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_xwz, put=set_xwz) ) unorm_3 rab;
/// <summary>
/// Returns a unorm_3 that is composed of element 0, element 3, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_xwz() const __GPU {
return unorm_3(_M_x,_M_w,_M_z);
}
/// <summary>
/// Set element 0, 3, and 2 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_xwz(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 2 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) unorm_3 yxz;
/// <summary>
/// Property for accessing element 1, 0, and 2 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) unorm_3 grb;
/// <summary>
/// Returns a unorm_3 that is composed of element 1, element 0, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_yxz() const __GPU {
return unorm_3(_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 0, and 2 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_yxz(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 3 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_yxw, put=set_yxw) ) unorm_3 yxw;
/// <summary>
/// Property for accessing element 1, 0, and 3 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_yxw, put=set_yxw) ) unorm_3 gra;
/// <summary>
/// Returns a unorm_3 that is composed of element 1, element 0, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_yxw() const __GPU {
return unorm_3(_M_y,_M_x,_M_w);
}
/// <summary>
/// Set element 1, 0, and 3 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_yxw(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 0 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) unorm_3 yzx;
/// <summary>
/// Property for accessing element 1, 2, and 0 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) unorm_3 gbr;
/// <summary>
/// Returns a unorm_3 that is composed of element 1, element 2, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_yzx() const __GPU {
return unorm_3(_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 2, and 0 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_yzx(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 3 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_yzw, put=set_yzw) ) unorm_3 yzw;
/// <summary>
/// Property for accessing element 1, 2, and 3 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_yzw, put=set_yzw) ) unorm_3 gba;
/// <summary>
/// Returns a unorm_3 that is composed of element 1, element 2, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_yzw() const __GPU {
return unorm_3(_M_y,_M_z,_M_w);
}
/// <summary>
/// Set element 1, 2, and 3 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_yzw(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 3, and 0 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_ywx, put=set_ywx) ) unorm_3 ywx;
/// <summary>
/// Property for accessing element 1, 3, and 0 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_ywx, put=set_ywx) ) unorm_3 gar;
/// <summary>
/// Returns a unorm_3 that is composed of element 1, element 3, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_ywx() const __GPU {
return unorm_3(_M_y,_M_w,_M_x);
}
/// <summary>
/// Set element 1, 3, and 0 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_ywx(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 3, and 2 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_ywz, put=set_ywz) ) unorm_3 ywz;
/// <summary>
/// Property for accessing element 1, 3, and 2 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_ywz, put=set_ywz) ) unorm_3 gab;
/// <summary>
/// Returns a unorm_3 that is composed of element 1, element 3, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_ywz() const __GPU {
return unorm_3(_M_y,_M_w,_M_z);
}
/// <summary>
/// Set element 1, 3, and 2 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_ywz(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 1 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) unorm_3 zxy;
/// <summary>
/// Property for accessing element 2, 0, and 1 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) unorm_3 brg;
/// <summary>
/// Returns a unorm_3 that is composed of element 2, element 0, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_zxy() const __GPU {
return unorm_3(_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 0, and 1 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_zxy(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 3 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_zxw, put=set_zxw) ) unorm_3 zxw;
/// <summary>
/// Property for accessing element 2, 0, and 3 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_zxw, put=set_zxw) ) unorm_3 bra;
/// <summary>
/// Returns a unorm_3 that is composed of element 2, element 0, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_zxw() const __GPU {
return unorm_3(_M_z,_M_x,_M_w);
}
/// <summary>
/// Set element 2, 0, and 3 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_zxw(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 0 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) unorm_3 zyx;
/// <summary>
/// Property for accessing element 2, 1, and 0 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) unorm_3 bgr;
/// <summary>
/// Returns a unorm_3 that is composed of element 2, element 1, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_zyx() const __GPU {
return unorm_3(_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 1, and 0 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_zyx(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 3 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_zyw, put=set_zyw) ) unorm_3 zyw;
/// <summary>
/// Property for accessing element 2, 1, and 3 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_zyw, put=set_zyw) ) unorm_3 bga;
/// <summary>
/// Returns a unorm_3 that is composed of element 2, element 1, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_zyw() const __GPU {
return unorm_3(_M_z,_M_y,_M_w);
}
/// <summary>
/// Set element 2, 1, and 3 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_zyw(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 3, and 0 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_zwx, put=set_zwx) ) unorm_3 zwx;
/// <summary>
/// Property for accessing element 2, 3, and 0 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_zwx, put=set_zwx) ) unorm_3 bar;
/// <summary>
/// Returns a unorm_3 that is composed of element 2, element 3, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_zwx() const __GPU {
return unorm_3(_M_z,_M_w,_M_x);
}
/// <summary>
/// Set element 2, 3, and 0 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_zwx(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 3, and 1 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_zwy, put=set_zwy) ) unorm_3 zwy;
/// <summary>
/// Property for accessing element 2, 3, and 1 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_zwy, put=set_zwy) ) unorm_3 bag;
/// <summary>
/// Returns a unorm_3 that is composed of element 2, element 3, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_zwy() const __GPU {
return unorm_3(_M_z,_M_w,_M_y);
}
/// <summary>
/// Set element 2, 3, and 1 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_zwy(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 0, and 1 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_wxy, put=set_wxy) ) unorm_3 wxy;
/// <summary>
/// Property for accessing element 3, 0, and 1 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_wxy, put=set_wxy) ) unorm_3 arg;
/// <summary>
/// Returns a unorm_3 that is composed of element 3, element 0, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_wxy() const __GPU {
return unorm_3(_M_w,_M_x,_M_y);
}
/// <summary>
/// Set element 3, 0, and 1 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_wxy(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 0, and 2 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_wxz, put=set_wxz) ) unorm_3 wxz;
/// <summary>
/// Property for accessing element 3, 0, and 2 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_wxz, put=set_wxz) ) unorm_3 arb;
/// <summary>
/// Returns a unorm_3 that is composed of element 3, element 0, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_wxz() const __GPU {
return unorm_3(_M_w,_M_x,_M_z);
}
/// <summary>
/// Set element 3, 0, and 2 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_wxz(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 1, and 0 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_wyx, put=set_wyx) ) unorm_3 wyx;
/// <summary>
/// Property for accessing element 3, 1, and 0 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_wyx, put=set_wyx) ) unorm_3 agr;
/// <summary>
/// Returns a unorm_3 that is composed of element 3, element 1, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_wyx() const __GPU {
return unorm_3(_M_w,_M_y,_M_x);
}
/// <summary>
/// Set element 3, 1, and 0 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_wyx(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 1, and 2 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_wyz, put=set_wyz) ) unorm_3 wyz;
/// <summary>
/// Property for accessing element 3, 1, and 2 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_wyz, put=set_wyz) ) unorm_3 agb;
/// <summary>
/// Returns a unorm_3 that is composed of element 3, element 1, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_wyz() const __GPU {
return unorm_3(_M_w,_M_y,_M_z);
}
/// <summary>
/// Set element 3, 1, and 2 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_wyz(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 2, and 0 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_wzx, put=set_wzx) ) unorm_3 wzx;
/// <summary>
/// Property for accessing element 3, 2, and 0 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_wzx, put=set_wzx) ) unorm_3 abr;
/// <summary>
/// Returns a unorm_3 that is composed of element 3, element 2, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_wzx() const __GPU {
return unorm_3(_M_w,_M_z,_M_x);
}
/// <summary>
/// Set element 3, 2, and 0 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_wzx(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 2, and 1 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_wzy, put=set_wzy) ) unorm_3 wzy;
/// <summary>
/// Property for accessing element 3, 2, and 1 of this unorm_4 as a unorm_3.
/// </summary>
__declspec( property( get=get_wzy, put=set_wzy) ) unorm_3 abg;
/// <summary>
/// Returns a unorm_3 that is composed of element 3, element 2, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_3.
/// </returns>
unorm_3 get_wzy() const __GPU {
return unorm_3(_M_w,_M_z,_M_y);
}
/// <summary>
/// Set element 3, 2, and 1 of this unorm_4 with a unorm_3.
/// </summary>
/// <param name="_Value">
/// a unorm_3 value.
/// </param>
void set_wzy(const unorm_3& _Value) __GPU
{
unorm_3 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 1, 2, and 3 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_xyzw, put=set_xyzw) ) unorm_4 xyzw;
/// <summary>
/// Property for accessing element 0, 1, 2, and 3 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_xyzw, put=set_xyzw) ) unorm_4 rgba;
/// <summary>
/// Returns a unorm_4 that is composed of element 0, element 1, element 2, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_xyzw() const __GPU {
return unorm_4(_M_x,_M_y,_M_z,_M_w);
}
/// <summary>
/// Set element 0, 1, 2, and 3 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_xyzw(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 1, 3, and 2 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_xywz, put=set_xywz) ) unorm_4 xywz;
/// <summary>
/// Property for accessing element 0, 1, 3, and 2 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_xywz, put=set_xywz) ) unorm_4 rgab;
/// <summary>
/// Returns a unorm_4 that is composed of element 0, element 1, element 3, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_xywz() const __GPU {
return unorm_4(_M_x,_M_y,_M_w,_M_z);
}
/// <summary>
/// Set element 0, 1, 3, and 2 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_xywz(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 2, 1, and 3 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_xzyw, put=set_xzyw) ) unorm_4 xzyw;
/// <summary>
/// Property for accessing element 0, 2, 1, and 3 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_xzyw, put=set_xzyw) ) unorm_4 rbga;
/// <summary>
/// Returns a unorm_4 that is composed of element 0, element 2, element 1, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_xzyw() const __GPU {
return unorm_4(_M_x,_M_z,_M_y,_M_w);
}
/// <summary>
/// Set element 0, 2, 1, and 3 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_xzyw(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 2, 3, and 1 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_xzwy, put=set_xzwy) ) unorm_4 xzwy;
/// <summary>
/// Property for accessing element 0, 2, 3, and 1 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_xzwy, put=set_xzwy) ) unorm_4 rbag;
/// <summary>
/// Returns a unorm_4 that is composed of element 0, element 2, element 3, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_xzwy() const __GPU {
return unorm_4(_M_x,_M_z,_M_w,_M_y);
}
/// <summary>
/// Set element 0, 2, 3, and 1 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_xzwy(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 3, 1, and 2 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_xwyz, put=set_xwyz) ) unorm_4 xwyz;
/// <summary>
/// Property for accessing element 0, 3, 1, and 2 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_xwyz, put=set_xwyz) ) unorm_4 ragb;
/// <summary>
/// Returns a unorm_4 that is composed of element 0, element 3, element 1, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_xwyz() const __GPU {
return unorm_4(_M_x,_M_w,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 3, 1, and 2 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_xwyz(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 3, 2, and 1 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_xwzy, put=set_xwzy) ) unorm_4 xwzy;
/// <summary>
/// Property for accessing element 0, 3, 2, and 1 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_xwzy, put=set_xwzy) ) unorm_4 rabg;
/// <summary>
/// Returns a unorm_4 that is composed of element 0, element 3, element 2, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_xwzy() const __GPU {
return unorm_4(_M_x,_M_w,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 3, 2, and 1 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_xwzy(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 0, 2, and 3 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_yxzw, put=set_yxzw) ) unorm_4 yxzw;
/// <summary>
/// Property for accessing element 1, 0, 2, and 3 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_yxzw, put=set_yxzw) ) unorm_4 grba;
/// <summary>
/// Returns a unorm_4 that is composed of element 1, element 0, element 2, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_yxzw() const __GPU {
return unorm_4(_M_y,_M_x,_M_z,_M_w);
}
/// <summary>
/// Set element 1, 0, 2, and 3 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_yxzw(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 0, 3, and 2 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_yxwz, put=set_yxwz) ) unorm_4 yxwz;
/// <summary>
/// Property for accessing element 1, 0, 3, and 2 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_yxwz, put=set_yxwz) ) unorm_4 grab;
/// <summary>
/// Returns a unorm_4 that is composed of element 1, element 0, element 3, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_yxwz() const __GPU {
return unorm_4(_M_y,_M_x,_M_w,_M_z);
}
/// <summary>
/// Set element 1, 0, 3, and 2 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_yxwz(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 2, 0, and 3 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_yzxw, put=set_yzxw) ) unorm_4 yzxw;
/// <summary>
/// Property for accessing element 1, 2, 0, and 3 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_yzxw, put=set_yzxw) ) unorm_4 gbra;
/// <summary>
/// Returns a unorm_4 that is composed of element 1, element 2, element 0, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_yzxw() const __GPU {
return unorm_4(_M_y,_M_z,_M_x,_M_w);
}
/// <summary>
/// Set element 1, 2, 0, and 3 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_yzxw(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 2, 3, and 0 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_yzwx, put=set_yzwx) ) unorm_4 yzwx;
/// <summary>
/// Property for accessing element 1, 2, 3, and 0 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_yzwx, put=set_yzwx) ) unorm_4 gbar;
/// <summary>
/// Returns a unorm_4 that is composed of element 1, element 2, element 3, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_yzwx() const __GPU {
return unorm_4(_M_y,_M_z,_M_w,_M_x);
}
/// <summary>
/// Set element 1, 2, 3, and 0 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_yzwx(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 3, 0, and 2 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_ywxz, put=set_ywxz) ) unorm_4 ywxz;
/// <summary>
/// Property for accessing element 1, 3, 0, and 2 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_ywxz, put=set_ywxz) ) unorm_4 garb;
/// <summary>
/// Returns a unorm_4 that is composed of element 1, element 3, element 0, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_ywxz() const __GPU {
return unorm_4(_M_y,_M_w,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 3, 0, and 2 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_ywxz(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 3, 2, and 0 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_ywzx, put=set_ywzx) ) unorm_4 ywzx;
/// <summary>
/// Property for accessing element 1, 3, 2, and 0 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_ywzx, put=set_ywzx) ) unorm_4 gabr;
/// <summary>
/// Returns a unorm_4 that is composed of element 1, element 3, element 2, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_ywzx() const __GPU {
return unorm_4(_M_y,_M_w,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 3, 2, and 0 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_ywzx(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 0, 1, and 3 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_zxyw, put=set_zxyw) ) unorm_4 zxyw;
/// <summary>
/// Property for accessing element 2, 0, 1, and 3 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_zxyw, put=set_zxyw) ) unorm_4 brga;
/// <summary>
/// Returns a unorm_4 that is composed of element 2, element 0, element 1, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_zxyw() const __GPU {
return unorm_4(_M_z,_M_x,_M_y,_M_w);
}
/// <summary>
/// Set element 2, 0, 1, and 3 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_zxyw(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 0, 3, and 1 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_zxwy, put=set_zxwy) ) unorm_4 zxwy;
/// <summary>
/// Property for accessing element 2, 0, 3, and 1 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_zxwy, put=set_zxwy) ) unorm_4 brag;
/// <summary>
/// Returns a unorm_4 that is composed of element 2, element 0, element 3, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_zxwy() const __GPU {
return unorm_4(_M_z,_M_x,_M_w,_M_y);
}
/// <summary>
/// Set element 2, 0, 3, and 1 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_zxwy(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 1, 0, and 3 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_zyxw, put=set_zyxw) ) unorm_4 zyxw;
/// <summary>
/// Property for accessing element 2, 1, 0, and 3 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_zyxw, put=set_zyxw) ) unorm_4 bgra;
/// <summary>
/// Returns a unorm_4 that is composed of element 2, element 1, element 0, and element 3 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_zyxw() const __GPU {
return unorm_4(_M_z,_M_y,_M_x,_M_w);
}
/// <summary>
/// Set element 2, 1, 0, and 3 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_zyxw(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 1, 3, and 0 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_zywx, put=set_zywx) ) unorm_4 zywx;
/// <summary>
/// Property for accessing element 2, 1, 3, and 0 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_zywx, put=set_zywx) ) unorm_4 bgar;
/// <summary>
/// Returns a unorm_4 that is composed of element 2, element 1, element 3, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_zywx() const __GPU {
return unorm_4(_M_z,_M_y,_M_w,_M_x);
}
/// <summary>
/// Set element 2, 1, 3, and 0 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_zywx(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 3, 0, and 1 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_zwxy, put=set_zwxy) ) unorm_4 zwxy;
/// <summary>
/// Property for accessing element 2, 3, 0, and 1 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_zwxy, put=set_zwxy) ) unorm_4 barg;
/// <summary>
/// Returns a unorm_4 that is composed of element 2, element 3, element 0, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_zwxy() const __GPU {
return unorm_4(_M_z,_M_w,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 3, 0, and 1 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_zwxy(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 3, 1, and 0 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_zwyx, put=set_zwyx) ) unorm_4 zwyx;
/// <summary>
/// Property for accessing element 2, 3, 1, and 0 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_zwyx, put=set_zwyx) ) unorm_4 bagr;
/// <summary>
/// Returns a unorm_4 that is composed of element 2, element 3, element 1, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_zwyx() const __GPU {
return unorm_4(_M_z,_M_w,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 3, 1, and 0 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_zwyx(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 0, 1, and 2 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_wxyz, put=set_wxyz) ) unorm_4 wxyz;
/// <summary>
/// Property for accessing element 3, 0, 1, and 2 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_wxyz, put=set_wxyz) ) unorm_4 argb;
/// <summary>
/// Returns a unorm_4 that is composed of element 3, element 0, element 1, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_wxyz() const __GPU {
return unorm_4(_M_w,_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 3, 0, 1, and 2 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_wxyz(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 0, 2, and 1 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_wxzy, put=set_wxzy) ) unorm_4 wxzy;
/// <summary>
/// Property for accessing element 3, 0, 2, and 1 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_wxzy, put=set_wxzy) ) unorm_4 arbg;
/// <summary>
/// Returns a unorm_4 that is composed of element 3, element 0, element 2, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_wxzy() const __GPU {
return unorm_4(_M_w,_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 3, 0, 2, and 1 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_wxzy(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 1, 0, and 2 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_wyxz, put=set_wyxz) ) unorm_4 wyxz;
/// <summary>
/// Property for accessing element 3, 1, 0, and 2 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_wyxz, put=set_wyxz) ) unorm_4 agrb;
/// <summary>
/// Returns a unorm_4 that is composed of element 3, element 1, element 0, and element 2 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_wyxz() const __GPU {
return unorm_4(_M_w,_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 3, 1, 0, and 2 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_wyxz(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 1, 2, and 0 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_wyzx, put=set_wyzx) ) unorm_4 wyzx;
/// <summary>
/// Property for accessing element 3, 1, 2, and 0 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_wyzx, put=set_wyzx) ) unorm_4 agbr;
/// <summary>
/// Returns a unorm_4 that is composed of element 3, element 1, element 2, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_wyzx() const __GPU {
return unorm_4(_M_w,_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 3, 1, 2, and 0 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_wyzx(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 2, 0, and 1 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_wzxy, put=set_wzxy) ) unorm_4 wzxy;
/// <summary>
/// Property for accessing element 3, 2, 0, and 1 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_wzxy, put=set_wzxy) ) unorm_4 abrg;
/// <summary>
/// Returns a unorm_4 that is composed of element 3, element 2, element 0, and element 1 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_wzxy() const __GPU {
return unorm_4(_M_w,_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 3, 2, 0, and 1 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_wzxy(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 2, 1, and 0 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_wzyx, put=set_wzyx) ) unorm_4 wzyx;
/// <summary>
/// Property for accessing element 3, 2, 1, and 0 of this unorm_4 as a unorm_4.
/// </summary>
__declspec( property( get=get_wzyx, put=set_wzyx) ) unorm_4 abgr;
/// <summary>
/// Returns a unorm_4 that is composed of element 3, element 2, element 1, and element 0 of this unorm_4.
/// </summary>
/// <returns>
/// a unorm_4.
/// </returns>
unorm_4 get_wzyx() const __GPU {
return unorm_4(_M_w,_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 3, 2, 1, and 0 of this unorm_4 with a unorm_4.
/// </summary>
/// <param name="_Value">
/// a unorm_4 value.
/// </param>
void set_wzyx(const unorm_4& _Value) __GPU
{
unorm_4 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
_M_x = _Val.w;
}
};
/// <summary>
/// Represent a short vector of 2 norm's.
/// </summary>
class norm_2
{
public:
typedef norm value_type;
static const int size = 2;
private:
static const _Short_vector_base_type_id _Base_type_id = _Norm_type;
private:
value_type _M_x;
value_type _M_y;
public:
/// <summary>
/// Property for accessing element 0 of this norm_2 as a norm.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) norm x;
/// <summary>
/// Property for accessing element 0 of this norm_2 as a norm.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) norm r;
/// <summary>
/// Returns element 0 of this norm_2.
/// </summary>
/// <returns>
/// Element 0 of this norm_2.
/// </returns>
norm get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this norm_2.
/// </summary>
/// <returns>
/// Reference to element 0 of this norm_2.
/// </returns>
norm& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this norm_2.
/// </summary>
/// <returns>
/// Reference to element 0 of this norm_2.
/// </returns>
norm& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this norm_2 with a norm.
/// </summary>
/// <param name="_Value">
/// a norm value.
/// </param>
void set_x(norm _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this norm_2 as a norm.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) norm y;
/// <summary>
/// Property for accessing element 1 of this norm_2 as a norm.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) norm g;
/// <summary>
/// Returns element 1 of this norm_2.
/// </summary>
/// <returns>
/// Element 1 of this norm_2.
/// </returns>
norm get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this norm_2.
/// </summary>
/// <returns>
/// Reference to element 1 of this norm_2.
/// </returns>
norm& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this norm_2.
/// </summary>
/// <returns>
/// Reference to element 1 of this norm_2.
/// </returns>
norm& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this norm_2 with a norm.
/// </summary>
/// <param name="_Value">
/// a norm value.
/// </param>
void set_y(norm _Value) __GPU
{
_M_y = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
norm_2() __GPU
{
_M_x = norm(0.0f);
_M_y = norm(0.0f);
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
norm_2(norm _V0, norm _V1) __GPU
{
_M_x = _V0;
_M_y = _V1;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
norm_2(float _V0, float _V1) __GPU
{
_M_x = norm(_V0);
_M_y = norm(_V1);
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
norm_2(unorm _V0, unorm _V1) __GPU
{
_M_x = _V0;
_M_y = _V1;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
norm_2(norm _V) __GPU
{
_M_x = _V;
_M_y = _V;
}
explicit norm_2(float _V) __GPU
{
_M_x = norm(_V);
_M_y = norm(_V);
}
/// <summary>
/// Copy constructor.
/// </summary>
/// <param name="_Other">
/// The object to copy from.
/// </param>
norm_2(const norm_2& _Other) __GPU
{
*this = _Other;
}
norm_2& operator=(const norm_2& _Other) __GPU
{
_M_x = _Other._M_x;
_M_y = _Other._M_y;
return *this;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_2(const uint_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_2(const int_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_2(const float_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_2(const unorm_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_2(const double_2& _Other) __GPU;
norm_2 operator-() const __GPU
{
norm_2 _Value = *this;
return norm_2(-_Value.x, -_Value.y);
}
norm_2& operator++() __GPU
{
norm_2 _Value = *this;
++_Value._M_x;
++_Value._M_y;
*this = _Value;
return *this;
}
norm_2 operator++(int) __GPU
{
norm_2 _Result = *this;
++(*this);
return _Result;
}
norm_2& operator--() __GPU
{
norm_2 _Value = *this;
--_Value._M_x;
--_Value._M_y;
*this = _Value;
return *this;
}
norm_2 operator--(int) __GPU
{
norm_2 _Result = *this;
--(*this);
return _Result;
}
norm_2& operator+=(const norm_2& _Other) __GPU
{
norm_2 _Value1 = *this;
norm_2 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
*this = _Value1;
return *this;
}
norm_2& operator-=(const norm_2& _Other) __GPU
{
norm_2 _Value1 = *this;
norm_2 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
*this = _Value1;
return *this;
}
norm_2& operator*=(const norm_2& _Other) __GPU
{
norm_2 _Value1 = *this;
norm_2 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
*this = _Value1;
return *this;
}
norm_2& operator/=(const norm_2& _Other) __GPU
{
norm_2 _Value1 = *this;
norm_2 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this norm_2 as a norm_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) norm_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this norm_2 as a norm_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) norm_2 rg;
/// <summary>
/// Returns a norm_2 that is composed of element 0, and element 1 of this norm_2.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_xy() const __GPU {
return norm_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this norm_2 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_xy(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this norm_2 as a norm_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) norm_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this norm_2 as a norm_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) norm_2 gr;
/// <summary>
/// Returns a norm_2 that is composed of element 1, and element 0 of this norm_2.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_yx() const __GPU {
return norm_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this norm_2 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_yx(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
};
/// <summary>
/// Represent a short vector of 3 norm's.
/// </summary>
class norm_3
{
public:
typedef norm value_type;
static const int size = 3;
private:
static const _Short_vector_base_type_id _Base_type_id = _Norm_type;
private:
value_type _M_x;
value_type _M_y;
value_type _M_z;
public:
/// <summary>
/// Property for accessing element 0 of this norm_3 as a norm.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) norm x;
/// <summary>
/// Property for accessing element 0 of this norm_3 as a norm.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) norm r;
/// <summary>
/// Returns element 0 of this norm_3.
/// </summary>
/// <returns>
/// Element 0 of this norm_3.
/// </returns>
norm get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this norm_3.
/// </summary>
/// <returns>
/// Reference to element 0 of this norm_3.
/// </returns>
norm& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this norm_3.
/// </summary>
/// <returns>
/// Reference to element 0 of this norm_3.
/// </returns>
norm& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this norm_3 with a norm.
/// </summary>
/// <param name="_Value">
/// a norm value.
/// </param>
void set_x(norm _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this norm_3 as a norm.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) norm y;
/// <summary>
/// Property for accessing element 1 of this norm_3 as a norm.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) norm g;
/// <summary>
/// Returns element 1 of this norm_3.
/// </summary>
/// <returns>
/// Element 1 of this norm_3.
/// </returns>
norm get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this norm_3.
/// </summary>
/// <returns>
/// Reference to element 1 of this norm_3.
/// </returns>
norm& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this norm_3.
/// </summary>
/// <returns>
/// Reference to element 1 of this norm_3.
/// </returns>
norm& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this norm_3 with a norm.
/// </summary>
/// <param name="_Value">
/// a norm value.
/// </param>
void set_y(norm _Value) __GPU
{
_M_y = _Value;
}
/// <summary>
/// Property for accessing element 2 of this norm_3 as a norm.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) norm z;
/// <summary>
/// Property for accessing element 2 of this norm_3 as a norm.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) norm b;
/// <summary>
/// Returns element 2 of this norm_3.
/// </summary>
/// <returns>
/// Element 2 of this norm_3.
/// </returns>
norm get_z() const __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this norm_3.
/// </summary>
/// <returns>
/// Reference to element 2 of this norm_3.
/// </returns>
norm& ref_z() __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this norm_3.
/// </summary>
/// <returns>
/// Reference to element 2 of this norm_3.
/// </returns>
norm& ref_b() __GPU {
return _M_z;
}
/// <summary>
/// Set element 2 of this norm_3 with a norm.
/// </summary>
/// <param name="_Value">
/// a norm value.
/// </param>
void set_z(norm _Value) __GPU
{
_M_z = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
norm_3() __GPU
{
_M_x = norm(0.0f);
_M_y = norm(0.0f);
_M_z = norm(0.0f);
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
norm_3(norm _V0, norm _V1, norm _V2) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
norm_3(float _V0, float _V1, float _V2) __GPU
{
_M_x = norm(_V0);
_M_y = norm(_V1);
_M_z = norm(_V2);
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
norm_3(unorm _V0, unorm _V1, unorm _V2) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
norm_3(norm _V) __GPU
{
_M_x = _V;
_M_y = _V;
_M_z = _V;
}
explicit norm_3(float _V) __GPU
{
_M_x = norm(_V);
_M_y = norm(_V);
_M_z = norm(_V);
}
/// <summary>
/// Copy constructor.
/// </summary>
/// <param name="_Other">
/// The object to copy from.
/// </param>
norm_3(const norm_3& _Other) __GPU
{
*this = _Other;
}
norm_3& operator=(const norm_3& _Other) __GPU
{
_M_x = _Other._M_x;
_M_y = _Other._M_y;
_M_z = _Other._M_z;
return *this;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_3(const uint_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_3(const int_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_3(const float_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_3(const unorm_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_3(const double_3& _Other) __GPU;
norm_3 operator-() const __GPU
{
norm_3 _Value = *this;
return norm_3(-_Value.x, -_Value.y, -_Value.z);
}
norm_3& operator++() __GPU
{
norm_3 _Value = *this;
++_Value._M_x;
++_Value._M_y;
++_Value._M_z;
*this = _Value;
return *this;
}
norm_3 operator++(int) __GPU
{
norm_3 _Result = *this;
++(*this);
return _Result;
}
norm_3& operator--() __GPU
{
norm_3 _Value = *this;
--_Value._M_x;
--_Value._M_y;
--_Value._M_z;
*this = _Value;
return *this;
}
norm_3 operator--(int) __GPU
{
norm_3 _Result = *this;
--(*this);
return _Result;
}
norm_3& operator+=(const norm_3& _Other) __GPU
{
norm_3 _Value1 = *this;
norm_3 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
_Value1.z += _Value2.z;
*this = _Value1;
return *this;
}
norm_3& operator-=(const norm_3& _Other) __GPU
{
norm_3 _Value1 = *this;
norm_3 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
_Value1.z -= _Value2.z;
*this = _Value1;
return *this;
}
norm_3& operator*=(const norm_3& _Other) __GPU
{
norm_3 _Value1 = *this;
norm_3 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
_Value1.z *= _Value2.z;
*this = _Value1;
return *this;
}
norm_3& operator/=(const norm_3& _Other) __GPU
{
norm_3 _Value1 = *this;
norm_3 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
_Value1.z /= _Value2.z;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this norm_3 as a norm_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) norm_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this norm_3 as a norm_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) norm_2 rg;
/// <summary>
/// Returns a norm_2 that is composed of element 0, and element 1 of this norm_3.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_xy() const __GPU {
return norm_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this norm_3 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_xy(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 2 of this norm_3 as a norm_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) norm_2 xz;
/// <summary>
/// Property for accessing element 0, and 2 of this norm_3 as a norm_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) norm_2 rb;
/// <summary>
/// Returns a norm_2 that is composed of element 0, and element 2 of this norm_3.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_xz() const __GPU {
return norm_2(_M_x,_M_z);
}
/// <summary>
/// Set element 0, and 2 of this norm_3 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_xz(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this norm_3 as a norm_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) norm_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this norm_3 as a norm_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) norm_2 gr;
/// <summary>
/// Returns a norm_2 that is composed of element 1, and element 0 of this norm_3.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_yx() const __GPU {
return norm_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this norm_3 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_yx(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 2 of this norm_3 as a norm_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) norm_2 yz;
/// <summary>
/// Property for accessing element 1, and 2 of this norm_3 as a norm_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) norm_2 gb;
/// <summary>
/// Returns a norm_2 that is composed of element 1, and element 2 of this norm_3.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_yz() const __GPU {
return norm_2(_M_y,_M_z);
}
/// <summary>
/// Set element 1, and 2 of this norm_3 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_yz(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 0 of this norm_3 as a norm_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) norm_2 zx;
/// <summary>
/// Property for accessing element 2, and 0 of this norm_3 as a norm_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) norm_2 br;
/// <summary>
/// Returns a norm_2 that is composed of element 2, and element 0 of this norm_3.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_zx() const __GPU {
return norm_2(_M_z,_M_x);
}
/// <summary>
/// Set element 2, and 0 of this norm_3 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_zx(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 1 of this norm_3 as a norm_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) norm_2 zy;
/// <summary>
/// Property for accessing element 2, and 1 of this norm_3 as a norm_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) norm_2 bg;
/// <summary>
/// Returns a norm_2 that is composed of element 2, and element 1 of this norm_3.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_zy() const __GPU {
return norm_2(_M_z,_M_y);
}
/// <summary>
/// Set element 2, and 1 of this norm_3 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_zy(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, 1, and 2 of this norm_3 as a norm_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) norm_3 xyz;
/// <summary>
/// Property for accessing element 0, 1, and 2 of this norm_3 as a norm_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) norm_3 rgb;
/// <summary>
/// Returns a norm_3 that is composed of element 0, element 1, and element 2 of this norm_3.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_xyz() const __GPU {
return norm_3(_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 1, and 2 of this norm_3 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_xyz(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 1 of this norm_3 as a norm_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) norm_3 xzy;
/// <summary>
/// Property for accessing element 0, 2, and 1 of this norm_3 as a norm_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) norm_3 rbg;
/// <summary>
/// Returns a norm_3 that is composed of element 0, element 2, and element 1 of this norm_3.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_xzy() const __GPU {
return norm_3(_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 2, and 1 of this norm_3 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_xzy(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 2 of this norm_3 as a norm_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) norm_3 yxz;
/// <summary>
/// Property for accessing element 1, 0, and 2 of this norm_3 as a norm_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) norm_3 grb;
/// <summary>
/// Returns a norm_3 that is composed of element 1, element 0, and element 2 of this norm_3.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_yxz() const __GPU {
return norm_3(_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 0, and 2 of this norm_3 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_yxz(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 0 of this norm_3 as a norm_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) norm_3 yzx;
/// <summary>
/// Property for accessing element 1, 2, and 0 of this norm_3 as a norm_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) norm_3 gbr;
/// <summary>
/// Returns a norm_3 that is composed of element 1, element 2, and element 0 of this norm_3.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_yzx() const __GPU {
return norm_3(_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 2, and 0 of this norm_3 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_yzx(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 1 of this norm_3 as a norm_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) norm_3 zxy;
/// <summary>
/// Property for accessing element 2, 0, and 1 of this norm_3 as a norm_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) norm_3 brg;
/// <summary>
/// Returns a norm_3 that is composed of element 2, element 0, and element 1 of this norm_3.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_zxy() const __GPU {
return norm_3(_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 0, and 1 of this norm_3 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_zxy(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 0 of this norm_3 as a norm_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) norm_3 zyx;
/// <summary>
/// Property for accessing element 2, 1, and 0 of this norm_3 as a norm_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) norm_3 bgr;
/// <summary>
/// Returns a norm_3 that is composed of element 2, element 1, and element 0 of this norm_3.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_zyx() const __GPU {
return norm_3(_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 1, and 0 of this norm_3 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_zyx(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
};
/// <summary>
/// Represent a short vector of 4 norm's.
/// </summary>
class norm_4
{
public:
typedef norm value_type;
static const int size = 4;
private:
static const _Short_vector_base_type_id _Base_type_id = _Norm_type;
private:
value_type _M_x;
value_type _M_y;
value_type _M_z;
value_type _M_w;
public:
/// <summary>
/// Property for accessing element 0 of this norm_4 as a norm.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) norm x;
/// <summary>
/// Property for accessing element 0 of this norm_4 as a norm.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) norm r;
/// <summary>
/// Returns element 0 of this norm_4.
/// </summary>
/// <returns>
/// Element 0 of this norm_4.
/// </returns>
norm get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this norm_4.
/// </summary>
/// <returns>
/// Reference to element 0 of this norm_4.
/// </returns>
norm& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this norm_4.
/// </summary>
/// <returns>
/// Reference to element 0 of this norm_4.
/// </returns>
norm& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this norm_4 with a norm.
/// </summary>
/// <param name="_Value">
/// a norm value.
/// </param>
void set_x(norm _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this norm_4 as a norm.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) norm y;
/// <summary>
/// Property for accessing element 1 of this norm_4 as a norm.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) norm g;
/// <summary>
/// Returns element 1 of this norm_4.
/// </summary>
/// <returns>
/// Element 1 of this norm_4.
/// </returns>
norm get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this norm_4.
/// </summary>
/// <returns>
/// Reference to element 1 of this norm_4.
/// </returns>
norm& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this norm_4.
/// </summary>
/// <returns>
/// Reference to element 1 of this norm_4.
/// </returns>
norm& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this norm_4 with a norm.
/// </summary>
/// <param name="_Value">
/// a norm value.
/// </param>
void set_y(norm _Value) __GPU
{
_M_y = _Value;
}
/// <summary>
/// Property for accessing element 2 of this norm_4 as a norm.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) norm z;
/// <summary>
/// Property for accessing element 2 of this norm_4 as a norm.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) norm b;
/// <summary>
/// Returns element 2 of this norm_4.
/// </summary>
/// <returns>
/// Element 2 of this norm_4.
/// </returns>
norm get_z() const __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this norm_4.
/// </summary>
/// <returns>
/// Reference to element 2 of this norm_4.
/// </returns>
norm& ref_z() __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this norm_4.
/// </summary>
/// <returns>
/// Reference to element 2 of this norm_4.
/// </returns>
norm& ref_b() __GPU {
return _M_z;
}
/// <summary>
/// Set element 2 of this norm_4 with a norm.
/// </summary>
/// <param name="_Value">
/// a norm value.
/// </param>
void set_z(norm _Value) __GPU
{
_M_z = _Value;
}
/// <summary>
/// Property for accessing element 3 of this norm_4 as a norm.
/// </summary>
__declspec( property( get=get_w, put=set_w) ) norm w;
/// <summary>
/// Property for accessing element 3 of this norm_4 as a norm.
/// </summary>
__declspec( property( get=get_w, put=set_w) ) norm a;
/// <summary>
/// Returns element 3 of this norm_4.
/// </summary>
/// <returns>
/// Element 3 of this norm_4.
/// </returns>
norm get_w() const __GPU {
return _M_w;
}
/// <summary>
/// Returns reference to element 3 of this norm_4.
/// </summary>
/// <returns>
/// Reference to element 3 of this norm_4.
/// </returns>
norm& ref_w() __GPU {
return _M_w;
}
/// <summary>
/// Returns reference to element 3 of this norm_4.
/// </summary>
/// <returns>
/// Reference to element 3 of this norm_4.
/// </returns>
norm& ref_a() __GPU {
return _M_w;
}
/// <summary>
/// Set element 3 of this norm_4 with a norm.
/// </summary>
/// <param name="_Value">
/// a norm value.
/// </param>
void set_w(norm _Value) __GPU
{
_M_w = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
norm_4() __GPU
{
_M_x = norm(0.0f);
_M_y = norm(0.0f);
_M_z = norm(0.0f);
_M_w = norm(0.0f);
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
/// <param name="_V3">
/// The value to initialize element 3.
/// </param>
norm_4(norm _V0, norm _V1, norm _V2, norm _V3) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
_M_w = _V3;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
/// <param name="_V3">
/// The value to initialize element 3.
/// </param>
norm_4(float _V0, float _V1, float _V2, float _V3) __GPU
{
_M_x = norm(_V0);
_M_y = norm(_V1);
_M_z = norm(_V2);
_M_w = norm(_V3);
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
/// <param name="_V3">
/// The value to initialize element 3.
/// </param>
norm_4(unorm _V0, unorm _V1, unorm _V2, unorm _V3) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
_M_w = _V3;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
norm_4(norm _V) __GPU
{
_M_x = _V;
_M_y = _V;
_M_z = _V;
_M_w = _V;
}
explicit norm_4(float _V) __GPU
{
_M_x = norm(_V);
_M_y = norm(_V);
_M_z = norm(_V);
_M_w = norm(_V);
}
/// <summary>
/// Copy constructor.
/// </summary>
/// <param name="_Other">
/// The object to copy from.
/// </param>
norm_4(const norm_4& _Other) __GPU
{
*this = _Other;
}
norm_4& operator=(const norm_4& _Other) __GPU
{
_M_x = _Other._M_x;
_M_y = _Other._M_y;
_M_z = _Other._M_z;
_M_w = _Other._M_w;
return *this;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_4(const uint_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_4(const int_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_4(const float_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_4(const unorm_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline norm_4(const double_4& _Other) __GPU;
norm_4 operator-() const __GPU
{
norm_4 _Value = *this;
return norm_4(-_Value.x, -_Value.y, -_Value.z, -_Value.w);
}
norm_4& operator++() __GPU
{
norm_4 _Value = *this;
++_Value._M_x;
++_Value._M_y;
++_Value._M_z;
++_Value._M_w;
*this = _Value;
return *this;
}
norm_4 operator++(int) __GPU
{
norm_4 _Result = *this;
++(*this);
return _Result;
}
norm_4& operator--() __GPU
{
norm_4 _Value = *this;
--_Value._M_x;
--_Value._M_y;
--_Value._M_z;
--_Value._M_w;
*this = _Value;
return *this;
}
norm_4 operator--(int) __GPU
{
norm_4 _Result = *this;
--(*this);
return _Result;
}
norm_4& operator+=(const norm_4& _Other) __GPU
{
norm_4 _Value1 = *this;
norm_4 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
_Value1.z += _Value2.z;
_Value1.w += _Value2.w;
*this = _Value1;
return *this;
}
norm_4& operator-=(const norm_4& _Other) __GPU
{
norm_4 _Value1 = *this;
norm_4 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
_Value1.z -= _Value2.z;
_Value1.w -= _Value2.w;
*this = _Value1;
return *this;
}
norm_4& operator*=(const norm_4& _Other) __GPU
{
norm_4 _Value1 = *this;
norm_4 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
_Value1.z *= _Value2.z;
_Value1.w *= _Value2.w;
*this = _Value1;
return *this;
}
norm_4& operator/=(const norm_4& _Other) __GPU
{
norm_4 _Value1 = *this;
norm_4 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
_Value1.z /= _Value2.z;
_Value1.w /= _Value2.w;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) norm_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) norm_2 rg;
/// <summary>
/// Returns a norm_2 that is composed of element 0, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_xy() const __GPU {
return norm_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this norm_4 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_xy(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 2 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) norm_2 xz;
/// <summary>
/// Property for accessing element 0, and 2 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) norm_2 rb;
/// <summary>
/// Returns a norm_2 that is composed of element 0, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_xz() const __GPU {
return norm_2(_M_x,_M_z);
}
/// <summary>
/// Set element 0, and 2 of this norm_4 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_xz(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 3 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_xw, put=set_xw) ) norm_2 xw;
/// <summary>
/// Property for accessing element 0, and 3 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_xw, put=set_xw) ) norm_2 ra;
/// <summary>
/// Returns a norm_2 that is composed of element 0, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_xw() const __GPU {
return norm_2(_M_x,_M_w);
}
/// <summary>
/// Set element 0, and 3 of this norm_4 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_xw(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) norm_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) norm_2 gr;
/// <summary>
/// Returns a norm_2 that is composed of element 1, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_yx() const __GPU {
return norm_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this norm_4 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_yx(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 2 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) norm_2 yz;
/// <summary>
/// Property for accessing element 1, and 2 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) norm_2 gb;
/// <summary>
/// Returns a norm_2 that is composed of element 1, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_yz() const __GPU {
return norm_2(_M_y,_M_z);
}
/// <summary>
/// Set element 1, and 2 of this norm_4 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_yz(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 3 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_yw, put=set_yw) ) norm_2 yw;
/// <summary>
/// Property for accessing element 1, and 3 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_yw, put=set_yw) ) norm_2 ga;
/// <summary>
/// Returns a norm_2 that is composed of element 1, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_yw() const __GPU {
return norm_2(_M_y,_M_w);
}
/// <summary>
/// Set element 1, and 3 of this norm_4 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_yw(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 0 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) norm_2 zx;
/// <summary>
/// Property for accessing element 2, and 0 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) norm_2 br;
/// <summary>
/// Returns a norm_2 that is composed of element 2, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_zx() const __GPU {
return norm_2(_M_z,_M_x);
}
/// <summary>
/// Set element 2, and 0 of this norm_4 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_zx(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 1 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) norm_2 zy;
/// <summary>
/// Property for accessing element 2, and 1 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) norm_2 bg;
/// <summary>
/// Returns a norm_2 that is composed of element 2, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_zy() const __GPU {
return norm_2(_M_z,_M_y);
}
/// <summary>
/// Set element 2, and 1 of this norm_4 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_zy(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 3 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_zw, put=set_zw) ) norm_2 zw;
/// <summary>
/// Property for accessing element 2, and 3 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_zw, put=set_zw) ) norm_2 ba;
/// <summary>
/// Returns a norm_2 that is composed of element 2, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_zw() const __GPU {
return norm_2(_M_z,_M_w);
}
/// <summary>
/// Set element 2, and 3 of this norm_4 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_zw(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 0 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_wx, put=set_wx) ) norm_2 wx;
/// <summary>
/// Property for accessing element 3, and 0 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_wx, put=set_wx) ) norm_2 ar;
/// <summary>
/// Returns a norm_2 that is composed of element 3, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_wx() const __GPU {
return norm_2(_M_w,_M_x);
}
/// <summary>
/// Set element 3, and 0 of this norm_4 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_wx(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 1 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_wy, put=set_wy) ) norm_2 wy;
/// <summary>
/// Property for accessing element 3, and 1 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_wy, put=set_wy) ) norm_2 ag;
/// <summary>
/// Returns a norm_2 that is composed of element 3, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_wy() const __GPU {
return norm_2(_M_w,_M_y);
}
/// <summary>
/// Set element 3, and 1 of this norm_4 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_wy(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 2 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_wz, put=set_wz) ) norm_2 wz;
/// <summary>
/// Property for accessing element 3, and 2 of this norm_4 as a norm_2.
/// </summary>
__declspec( property( get=get_wz, put=set_wz) ) norm_2 ab;
/// <summary>
/// Returns a norm_2 that is composed of element 3, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_2.
/// </returns>
norm_2 get_wz() const __GPU {
return norm_2(_M_w,_M_z);
}
/// <summary>
/// Set element 3, and 2 of this norm_4 with a norm_2.
/// </summary>
/// <param name="_Value">
/// a norm_2 value.
/// </param>
void set_wz(const norm_2& _Value) __GPU
{
norm_2 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 0, 1, and 2 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) norm_3 xyz;
/// <summary>
/// Property for accessing element 0, 1, and 2 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) norm_3 rgb;
/// <summary>
/// Returns a norm_3 that is composed of element 0, element 1, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_xyz() const __GPU {
return norm_3(_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 1, and 2 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_xyz(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 1, and 3 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_xyw, put=set_xyw) ) norm_3 xyw;
/// <summary>
/// Property for accessing element 0, 1, and 3 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_xyw, put=set_xyw) ) norm_3 rga;
/// <summary>
/// Returns a norm_3 that is composed of element 0, element 1, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_xyw() const __GPU {
return norm_3(_M_x,_M_y,_M_w);
}
/// <summary>
/// Set element 0, 1, and 3 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_xyw(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 1 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) norm_3 xzy;
/// <summary>
/// Property for accessing element 0, 2, and 1 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) norm_3 rbg;
/// <summary>
/// Returns a norm_3 that is composed of element 0, element 2, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_xzy() const __GPU {
return norm_3(_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 2, and 1 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_xzy(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 3 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_xzw, put=set_xzw) ) norm_3 xzw;
/// <summary>
/// Property for accessing element 0, 2, and 3 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_xzw, put=set_xzw) ) norm_3 rba;
/// <summary>
/// Returns a norm_3 that is composed of element 0, element 2, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_xzw() const __GPU {
return norm_3(_M_x,_M_z,_M_w);
}
/// <summary>
/// Set element 0, 2, and 3 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_xzw(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 3, and 1 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_xwy, put=set_xwy) ) norm_3 xwy;
/// <summary>
/// Property for accessing element 0, 3, and 1 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_xwy, put=set_xwy) ) norm_3 rag;
/// <summary>
/// Returns a norm_3 that is composed of element 0, element 3, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_xwy() const __GPU {
return norm_3(_M_x,_M_w,_M_y);
}
/// <summary>
/// Set element 0, 3, and 1 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_xwy(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 3, and 2 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_xwz, put=set_xwz) ) norm_3 xwz;
/// <summary>
/// Property for accessing element 0, 3, and 2 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_xwz, put=set_xwz) ) norm_3 rab;
/// <summary>
/// Returns a norm_3 that is composed of element 0, element 3, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_xwz() const __GPU {
return norm_3(_M_x,_M_w,_M_z);
}
/// <summary>
/// Set element 0, 3, and 2 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_xwz(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 2 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) norm_3 yxz;
/// <summary>
/// Property for accessing element 1, 0, and 2 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) norm_3 grb;
/// <summary>
/// Returns a norm_3 that is composed of element 1, element 0, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_yxz() const __GPU {
return norm_3(_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 0, and 2 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_yxz(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 3 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_yxw, put=set_yxw) ) norm_3 yxw;
/// <summary>
/// Property for accessing element 1, 0, and 3 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_yxw, put=set_yxw) ) norm_3 gra;
/// <summary>
/// Returns a norm_3 that is composed of element 1, element 0, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_yxw() const __GPU {
return norm_3(_M_y,_M_x,_M_w);
}
/// <summary>
/// Set element 1, 0, and 3 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_yxw(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 0 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) norm_3 yzx;
/// <summary>
/// Property for accessing element 1, 2, and 0 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) norm_3 gbr;
/// <summary>
/// Returns a norm_3 that is composed of element 1, element 2, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_yzx() const __GPU {
return norm_3(_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 2, and 0 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_yzx(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 3 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_yzw, put=set_yzw) ) norm_3 yzw;
/// <summary>
/// Property for accessing element 1, 2, and 3 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_yzw, put=set_yzw) ) norm_3 gba;
/// <summary>
/// Returns a norm_3 that is composed of element 1, element 2, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_yzw() const __GPU {
return norm_3(_M_y,_M_z,_M_w);
}
/// <summary>
/// Set element 1, 2, and 3 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_yzw(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 3, and 0 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_ywx, put=set_ywx) ) norm_3 ywx;
/// <summary>
/// Property for accessing element 1, 3, and 0 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_ywx, put=set_ywx) ) norm_3 gar;
/// <summary>
/// Returns a norm_3 that is composed of element 1, element 3, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_ywx() const __GPU {
return norm_3(_M_y,_M_w,_M_x);
}
/// <summary>
/// Set element 1, 3, and 0 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_ywx(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 3, and 2 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_ywz, put=set_ywz) ) norm_3 ywz;
/// <summary>
/// Property for accessing element 1, 3, and 2 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_ywz, put=set_ywz) ) norm_3 gab;
/// <summary>
/// Returns a norm_3 that is composed of element 1, element 3, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_ywz() const __GPU {
return norm_3(_M_y,_M_w,_M_z);
}
/// <summary>
/// Set element 1, 3, and 2 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_ywz(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 1 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) norm_3 zxy;
/// <summary>
/// Property for accessing element 2, 0, and 1 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) norm_3 brg;
/// <summary>
/// Returns a norm_3 that is composed of element 2, element 0, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_zxy() const __GPU {
return norm_3(_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 0, and 1 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_zxy(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 3 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_zxw, put=set_zxw) ) norm_3 zxw;
/// <summary>
/// Property for accessing element 2, 0, and 3 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_zxw, put=set_zxw) ) norm_3 bra;
/// <summary>
/// Returns a norm_3 that is composed of element 2, element 0, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_zxw() const __GPU {
return norm_3(_M_z,_M_x,_M_w);
}
/// <summary>
/// Set element 2, 0, and 3 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_zxw(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 0 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) norm_3 zyx;
/// <summary>
/// Property for accessing element 2, 1, and 0 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) norm_3 bgr;
/// <summary>
/// Returns a norm_3 that is composed of element 2, element 1, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_zyx() const __GPU {
return norm_3(_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 1, and 0 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_zyx(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 3 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_zyw, put=set_zyw) ) norm_3 zyw;
/// <summary>
/// Property for accessing element 2, 1, and 3 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_zyw, put=set_zyw) ) norm_3 bga;
/// <summary>
/// Returns a norm_3 that is composed of element 2, element 1, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_zyw() const __GPU {
return norm_3(_M_z,_M_y,_M_w);
}
/// <summary>
/// Set element 2, 1, and 3 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_zyw(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 3, and 0 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_zwx, put=set_zwx) ) norm_3 zwx;
/// <summary>
/// Property for accessing element 2, 3, and 0 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_zwx, put=set_zwx) ) norm_3 bar;
/// <summary>
/// Returns a norm_3 that is composed of element 2, element 3, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_zwx() const __GPU {
return norm_3(_M_z,_M_w,_M_x);
}
/// <summary>
/// Set element 2, 3, and 0 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_zwx(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 3, and 1 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_zwy, put=set_zwy) ) norm_3 zwy;
/// <summary>
/// Property for accessing element 2, 3, and 1 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_zwy, put=set_zwy) ) norm_3 bag;
/// <summary>
/// Returns a norm_3 that is composed of element 2, element 3, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_zwy() const __GPU {
return norm_3(_M_z,_M_w,_M_y);
}
/// <summary>
/// Set element 2, 3, and 1 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_zwy(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 0, and 1 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_wxy, put=set_wxy) ) norm_3 wxy;
/// <summary>
/// Property for accessing element 3, 0, and 1 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_wxy, put=set_wxy) ) norm_3 arg;
/// <summary>
/// Returns a norm_3 that is composed of element 3, element 0, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_wxy() const __GPU {
return norm_3(_M_w,_M_x,_M_y);
}
/// <summary>
/// Set element 3, 0, and 1 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_wxy(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 0, and 2 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_wxz, put=set_wxz) ) norm_3 wxz;
/// <summary>
/// Property for accessing element 3, 0, and 2 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_wxz, put=set_wxz) ) norm_3 arb;
/// <summary>
/// Returns a norm_3 that is composed of element 3, element 0, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_wxz() const __GPU {
return norm_3(_M_w,_M_x,_M_z);
}
/// <summary>
/// Set element 3, 0, and 2 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_wxz(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 1, and 0 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_wyx, put=set_wyx) ) norm_3 wyx;
/// <summary>
/// Property for accessing element 3, 1, and 0 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_wyx, put=set_wyx) ) norm_3 agr;
/// <summary>
/// Returns a norm_3 that is composed of element 3, element 1, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_wyx() const __GPU {
return norm_3(_M_w,_M_y,_M_x);
}
/// <summary>
/// Set element 3, 1, and 0 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_wyx(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 1, and 2 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_wyz, put=set_wyz) ) norm_3 wyz;
/// <summary>
/// Property for accessing element 3, 1, and 2 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_wyz, put=set_wyz) ) norm_3 agb;
/// <summary>
/// Returns a norm_3 that is composed of element 3, element 1, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_wyz() const __GPU {
return norm_3(_M_w,_M_y,_M_z);
}
/// <summary>
/// Set element 3, 1, and 2 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_wyz(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 2, and 0 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_wzx, put=set_wzx) ) norm_3 wzx;
/// <summary>
/// Property for accessing element 3, 2, and 0 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_wzx, put=set_wzx) ) norm_3 abr;
/// <summary>
/// Returns a norm_3 that is composed of element 3, element 2, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_wzx() const __GPU {
return norm_3(_M_w,_M_z,_M_x);
}
/// <summary>
/// Set element 3, 2, and 0 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_wzx(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 2, and 1 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_wzy, put=set_wzy) ) norm_3 wzy;
/// <summary>
/// Property for accessing element 3, 2, and 1 of this norm_4 as a norm_3.
/// </summary>
__declspec( property( get=get_wzy, put=set_wzy) ) norm_3 abg;
/// <summary>
/// Returns a norm_3 that is composed of element 3, element 2, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_3.
/// </returns>
norm_3 get_wzy() const __GPU {
return norm_3(_M_w,_M_z,_M_y);
}
/// <summary>
/// Set element 3, 2, and 1 of this norm_4 with a norm_3.
/// </summary>
/// <param name="_Value">
/// a norm_3 value.
/// </param>
void set_wzy(const norm_3& _Value) __GPU
{
norm_3 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 1, 2, and 3 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_xyzw, put=set_xyzw) ) norm_4 xyzw;
/// <summary>
/// Property for accessing element 0, 1, 2, and 3 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_xyzw, put=set_xyzw) ) norm_4 rgba;
/// <summary>
/// Returns a norm_4 that is composed of element 0, element 1, element 2, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_xyzw() const __GPU {
return norm_4(_M_x,_M_y,_M_z,_M_w);
}
/// <summary>
/// Set element 0, 1, 2, and 3 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_xyzw(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 1, 3, and 2 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_xywz, put=set_xywz) ) norm_4 xywz;
/// <summary>
/// Property for accessing element 0, 1, 3, and 2 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_xywz, put=set_xywz) ) norm_4 rgab;
/// <summary>
/// Returns a norm_4 that is composed of element 0, element 1, element 3, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_xywz() const __GPU {
return norm_4(_M_x,_M_y,_M_w,_M_z);
}
/// <summary>
/// Set element 0, 1, 3, and 2 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_xywz(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 2, 1, and 3 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_xzyw, put=set_xzyw) ) norm_4 xzyw;
/// <summary>
/// Property for accessing element 0, 2, 1, and 3 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_xzyw, put=set_xzyw) ) norm_4 rbga;
/// <summary>
/// Returns a norm_4 that is composed of element 0, element 2, element 1, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_xzyw() const __GPU {
return norm_4(_M_x,_M_z,_M_y,_M_w);
}
/// <summary>
/// Set element 0, 2, 1, and 3 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_xzyw(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 2, 3, and 1 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_xzwy, put=set_xzwy) ) norm_4 xzwy;
/// <summary>
/// Property for accessing element 0, 2, 3, and 1 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_xzwy, put=set_xzwy) ) norm_4 rbag;
/// <summary>
/// Returns a norm_4 that is composed of element 0, element 2, element 3, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_xzwy() const __GPU {
return norm_4(_M_x,_M_z,_M_w,_M_y);
}
/// <summary>
/// Set element 0, 2, 3, and 1 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_xzwy(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 3, 1, and 2 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_xwyz, put=set_xwyz) ) norm_4 xwyz;
/// <summary>
/// Property for accessing element 0, 3, 1, and 2 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_xwyz, put=set_xwyz) ) norm_4 ragb;
/// <summary>
/// Returns a norm_4 that is composed of element 0, element 3, element 1, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_xwyz() const __GPU {
return norm_4(_M_x,_M_w,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 3, 1, and 2 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_xwyz(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 3, 2, and 1 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_xwzy, put=set_xwzy) ) norm_4 xwzy;
/// <summary>
/// Property for accessing element 0, 3, 2, and 1 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_xwzy, put=set_xwzy) ) norm_4 rabg;
/// <summary>
/// Returns a norm_4 that is composed of element 0, element 3, element 2, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_xwzy() const __GPU {
return norm_4(_M_x,_M_w,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 3, 2, and 1 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_xwzy(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 0, 2, and 3 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_yxzw, put=set_yxzw) ) norm_4 yxzw;
/// <summary>
/// Property for accessing element 1, 0, 2, and 3 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_yxzw, put=set_yxzw) ) norm_4 grba;
/// <summary>
/// Returns a norm_4 that is composed of element 1, element 0, element 2, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_yxzw() const __GPU {
return norm_4(_M_y,_M_x,_M_z,_M_w);
}
/// <summary>
/// Set element 1, 0, 2, and 3 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_yxzw(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 0, 3, and 2 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_yxwz, put=set_yxwz) ) norm_4 yxwz;
/// <summary>
/// Property for accessing element 1, 0, 3, and 2 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_yxwz, put=set_yxwz) ) norm_4 grab;
/// <summary>
/// Returns a norm_4 that is composed of element 1, element 0, element 3, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_yxwz() const __GPU {
return norm_4(_M_y,_M_x,_M_w,_M_z);
}
/// <summary>
/// Set element 1, 0, 3, and 2 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_yxwz(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 2, 0, and 3 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_yzxw, put=set_yzxw) ) norm_4 yzxw;
/// <summary>
/// Property for accessing element 1, 2, 0, and 3 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_yzxw, put=set_yzxw) ) norm_4 gbra;
/// <summary>
/// Returns a norm_4 that is composed of element 1, element 2, element 0, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_yzxw() const __GPU {
return norm_4(_M_y,_M_z,_M_x,_M_w);
}
/// <summary>
/// Set element 1, 2, 0, and 3 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_yzxw(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 2, 3, and 0 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_yzwx, put=set_yzwx) ) norm_4 yzwx;
/// <summary>
/// Property for accessing element 1, 2, 3, and 0 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_yzwx, put=set_yzwx) ) norm_4 gbar;
/// <summary>
/// Returns a norm_4 that is composed of element 1, element 2, element 3, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_yzwx() const __GPU {
return norm_4(_M_y,_M_z,_M_w,_M_x);
}
/// <summary>
/// Set element 1, 2, 3, and 0 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_yzwx(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 3, 0, and 2 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_ywxz, put=set_ywxz) ) norm_4 ywxz;
/// <summary>
/// Property for accessing element 1, 3, 0, and 2 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_ywxz, put=set_ywxz) ) norm_4 garb;
/// <summary>
/// Returns a norm_4 that is composed of element 1, element 3, element 0, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_ywxz() const __GPU {
return norm_4(_M_y,_M_w,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 3, 0, and 2 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_ywxz(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 3, 2, and 0 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_ywzx, put=set_ywzx) ) norm_4 ywzx;
/// <summary>
/// Property for accessing element 1, 3, 2, and 0 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_ywzx, put=set_ywzx) ) norm_4 gabr;
/// <summary>
/// Returns a norm_4 that is composed of element 1, element 3, element 2, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_ywzx() const __GPU {
return norm_4(_M_y,_M_w,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 3, 2, and 0 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_ywzx(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 0, 1, and 3 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_zxyw, put=set_zxyw) ) norm_4 zxyw;
/// <summary>
/// Property for accessing element 2, 0, 1, and 3 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_zxyw, put=set_zxyw) ) norm_4 brga;
/// <summary>
/// Returns a norm_4 that is composed of element 2, element 0, element 1, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_zxyw() const __GPU {
return norm_4(_M_z,_M_x,_M_y,_M_w);
}
/// <summary>
/// Set element 2, 0, 1, and 3 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_zxyw(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 0, 3, and 1 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_zxwy, put=set_zxwy) ) norm_4 zxwy;
/// <summary>
/// Property for accessing element 2, 0, 3, and 1 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_zxwy, put=set_zxwy) ) norm_4 brag;
/// <summary>
/// Returns a norm_4 that is composed of element 2, element 0, element 3, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_zxwy() const __GPU {
return norm_4(_M_z,_M_x,_M_w,_M_y);
}
/// <summary>
/// Set element 2, 0, 3, and 1 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_zxwy(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 1, 0, and 3 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_zyxw, put=set_zyxw) ) norm_4 zyxw;
/// <summary>
/// Property for accessing element 2, 1, 0, and 3 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_zyxw, put=set_zyxw) ) norm_4 bgra;
/// <summary>
/// Returns a norm_4 that is composed of element 2, element 1, element 0, and element 3 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_zyxw() const __GPU {
return norm_4(_M_z,_M_y,_M_x,_M_w);
}
/// <summary>
/// Set element 2, 1, 0, and 3 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_zyxw(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 1, 3, and 0 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_zywx, put=set_zywx) ) norm_4 zywx;
/// <summary>
/// Property for accessing element 2, 1, 3, and 0 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_zywx, put=set_zywx) ) norm_4 bgar;
/// <summary>
/// Returns a norm_4 that is composed of element 2, element 1, element 3, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_zywx() const __GPU {
return norm_4(_M_z,_M_y,_M_w,_M_x);
}
/// <summary>
/// Set element 2, 1, 3, and 0 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_zywx(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 3, 0, and 1 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_zwxy, put=set_zwxy) ) norm_4 zwxy;
/// <summary>
/// Property for accessing element 2, 3, 0, and 1 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_zwxy, put=set_zwxy) ) norm_4 barg;
/// <summary>
/// Returns a norm_4 that is composed of element 2, element 3, element 0, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_zwxy() const __GPU {
return norm_4(_M_z,_M_w,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 3, 0, and 1 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_zwxy(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 3, 1, and 0 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_zwyx, put=set_zwyx) ) norm_4 zwyx;
/// <summary>
/// Property for accessing element 2, 3, 1, and 0 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_zwyx, put=set_zwyx) ) norm_4 bagr;
/// <summary>
/// Returns a norm_4 that is composed of element 2, element 3, element 1, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_zwyx() const __GPU {
return norm_4(_M_z,_M_w,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 3, 1, and 0 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_zwyx(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 0, 1, and 2 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_wxyz, put=set_wxyz) ) norm_4 wxyz;
/// <summary>
/// Property for accessing element 3, 0, 1, and 2 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_wxyz, put=set_wxyz) ) norm_4 argb;
/// <summary>
/// Returns a norm_4 that is composed of element 3, element 0, element 1, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_wxyz() const __GPU {
return norm_4(_M_w,_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 3, 0, 1, and 2 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_wxyz(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 0, 2, and 1 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_wxzy, put=set_wxzy) ) norm_4 wxzy;
/// <summary>
/// Property for accessing element 3, 0, 2, and 1 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_wxzy, put=set_wxzy) ) norm_4 arbg;
/// <summary>
/// Returns a norm_4 that is composed of element 3, element 0, element 2, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_wxzy() const __GPU {
return norm_4(_M_w,_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 3, 0, 2, and 1 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_wxzy(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 1, 0, and 2 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_wyxz, put=set_wyxz) ) norm_4 wyxz;
/// <summary>
/// Property for accessing element 3, 1, 0, and 2 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_wyxz, put=set_wyxz) ) norm_4 agrb;
/// <summary>
/// Returns a norm_4 that is composed of element 3, element 1, element 0, and element 2 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_wyxz() const __GPU {
return norm_4(_M_w,_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 3, 1, 0, and 2 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_wyxz(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 1, 2, and 0 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_wyzx, put=set_wyzx) ) norm_4 wyzx;
/// <summary>
/// Property for accessing element 3, 1, 2, and 0 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_wyzx, put=set_wyzx) ) norm_4 agbr;
/// <summary>
/// Returns a norm_4 that is composed of element 3, element 1, element 2, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_wyzx() const __GPU {
return norm_4(_M_w,_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 3, 1, 2, and 0 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_wyzx(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 2, 0, and 1 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_wzxy, put=set_wzxy) ) norm_4 wzxy;
/// <summary>
/// Property for accessing element 3, 2, 0, and 1 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_wzxy, put=set_wzxy) ) norm_4 abrg;
/// <summary>
/// Returns a norm_4 that is composed of element 3, element 2, element 0, and element 1 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_wzxy() const __GPU {
return norm_4(_M_w,_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 3, 2, 0, and 1 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_wzxy(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 2, 1, and 0 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_wzyx, put=set_wzyx) ) norm_4 wzyx;
/// <summary>
/// Property for accessing element 3, 2, 1, and 0 of this norm_4 as a norm_4.
/// </summary>
__declspec( property( get=get_wzyx, put=set_wzyx) ) norm_4 abgr;
/// <summary>
/// Returns a norm_4 that is composed of element 3, element 2, element 1, and element 0 of this norm_4.
/// </summary>
/// <returns>
/// a norm_4.
/// </returns>
norm_4 get_wzyx() const __GPU {
return norm_4(_M_w,_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 3, 2, 1, and 0 of this norm_4 with a norm_4.
/// </summary>
/// <param name="_Value">
/// a norm_4 value.
/// </param>
void set_wzyx(const norm_4& _Value) __GPU
{
norm_4 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
_M_x = _Val.w;
}
};
/// <summary>
/// Represent a short vector of 2 double's.
/// </summary>
class double_2
{
public:
typedef double value_type;
static const int size = 2;
private:
static const _Short_vector_base_type_id _Base_type_id = _Double_type;
private:
value_type _M_x;
value_type _M_y;
public:
/// <summary>
/// Property for accessing element 0 of this double_2 as a double.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) double x;
/// <summary>
/// Property for accessing element 0 of this double_2 as a double.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) double r;
/// <summary>
/// Returns element 0 of this double_2.
/// </summary>
/// <returns>
/// Element 0 of this double_2.
/// </returns>
double get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this double_2.
/// </summary>
/// <returns>
/// Reference to element 0 of this double_2.
/// </returns>
double& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this double_2.
/// </summary>
/// <returns>
/// Reference to element 0 of this double_2.
/// </returns>
double& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this double_2 with a double.
/// </summary>
/// <param name="_Value">
/// a double value.
/// </param>
void set_x(double _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this double_2 as a double.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) double y;
/// <summary>
/// Property for accessing element 1 of this double_2 as a double.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) double g;
/// <summary>
/// Returns element 1 of this double_2.
/// </summary>
/// <returns>
/// Element 1 of this double_2.
/// </returns>
double get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this double_2.
/// </summary>
/// <returns>
/// Reference to element 1 of this double_2.
/// </returns>
double& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this double_2.
/// </summary>
/// <returns>
/// Reference to element 1 of this double_2.
/// </returns>
double& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this double_2 with a double.
/// </summary>
/// <param name="_Value">
/// a double value.
/// </param>
void set_y(double _Value) __GPU
{
_M_y = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
double_2() __GPU
{
_M_x = 0;
_M_y = 0;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
double_2(double _V0, double _V1) __GPU
{
_M_x = _V0;
_M_y = _V1;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
double_2(double _V) __GPU
{
_M_x = _V;
_M_y = _V;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_2(const uint_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_2(const int_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_2(const float_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_2(const unorm_2& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_2(const norm_2& _Other) __GPU;
double_2 operator-() const __GPU
{
double_2 _Value = *this;
return double_2(-_Value.x, -_Value.y);
}
double_2& operator++() __GPU
{
double_2 _Value = *this;
++_Value._M_x;
++_Value._M_y;
*this = _Value;
return *this;
}
double_2 operator++(int) __GPU
{
double_2 _Result = *this;
++(*this);
return _Result;
}
double_2& operator--() __GPU
{
double_2 _Value = *this;
--_Value._M_x;
--_Value._M_y;
*this = _Value;
return *this;
}
double_2 operator--(int) __GPU
{
double_2 _Result = *this;
--(*this);
return _Result;
}
double_2& operator+=(const double_2& _Other) __GPU
{
double_2 _Value1 = *this;
double_2 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
*this = _Value1;
return *this;
}
double_2& operator-=(const double_2& _Other) __GPU
{
double_2 _Value1 = *this;
double_2 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
*this = _Value1;
return *this;
}
double_2& operator*=(const double_2& _Other) __GPU
{
double_2 _Value1 = *this;
double_2 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
*this = _Value1;
return *this;
}
double_2& operator/=(const double_2& _Other) __GPU
{
double_2 _Value1 = *this;
double_2 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this double_2 as a double_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) double_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this double_2 as a double_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) double_2 rg;
/// <summary>
/// Returns a double_2 that is composed of element 0, and element 1 of this double_2.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_xy() const __GPU {
return double_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this double_2 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_xy(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this double_2 as a double_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) double_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this double_2 as a double_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) double_2 gr;
/// <summary>
/// Returns a double_2 that is composed of element 1, and element 0 of this double_2.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_yx() const __GPU {
return double_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this double_2 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_yx(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
};
/// <summary>
/// Represent a short vector of 3 double's.
/// </summary>
class double_3
{
public:
typedef double value_type;
static const int size = 3;
private:
static const _Short_vector_base_type_id _Base_type_id = _Double_type;
private:
value_type _M_x;
value_type _M_y;
value_type _M_z;
public:
/// <summary>
/// Property for accessing element 0 of this double_3 as a double.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) double x;
/// <summary>
/// Property for accessing element 0 of this double_3 as a double.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) double r;
/// <summary>
/// Returns element 0 of this double_3.
/// </summary>
/// <returns>
/// Element 0 of this double_3.
/// </returns>
double get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this double_3.
/// </summary>
/// <returns>
/// Reference to element 0 of this double_3.
/// </returns>
double& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this double_3.
/// </summary>
/// <returns>
/// Reference to element 0 of this double_3.
/// </returns>
double& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this double_3 with a double.
/// </summary>
/// <param name="_Value">
/// a double value.
/// </param>
void set_x(double _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this double_3 as a double.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) double y;
/// <summary>
/// Property for accessing element 1 of this double_3 as a double.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) double g;
/// <summary>
/// Returns element 1 of this double_3.
/// </summary>
/// <returns>
/// Element 1 of this double_3.
/// </returns>
double get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this double_3.
/// </summary>
/// <returns>
/// Reference to element 1 of this double_3.
/// </returns>
double& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this double_3.
/// </summary>
/// <returns>
/// Reference to element 1 of this double_3.
/// </returns>
double& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this double_3 with a double.
/// </summary>
/// <param name="_Value">
/// a double value.
/// </param>
void set_y(double _Value) __GPU
{
_M_y = _Value;
}
/// <summary>
/// Property for accessing element 2 of this double_3 as a double.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) double z;
/// <summary>
/// Property for accessing element 2 of this double_3 as a double.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) double b;
/// <summary>
/// Returns element 2 of this double_3.
/// </summary>
/// <returns>
/// Element 2 of this double_3.
/// </returns>
double get_z() const __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this double_3.
/// </summary>
/// <returns>
/// Reference to element 2 of this double_3.
/// </returns>
double& ref_z() __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this double_3.
/// </summary>
/// <returns>
/// Reference to element 2 of this double_3.
/// </returns>
double& ref_b() __GPU {
return _M_z;
}
/// <summary>
/// Set element 2 of this double_3 with a double.
/// </summary>
/// <param name="_Value">
/// a double value.
/// </param>
void set_z(double _Value) __GPU
{
_M_z = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
double_3() __GPU
{
_M_x = 0;
_M_y = 0;
_M_z = 0;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
double_3(double _V0, double _V1, double _V2) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
double_3(double _V) __GPU
{
_M_x = _V;
_M_y = _V;
_M_z = _V;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_3(const uint_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_3(const int_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_3(const float_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_3(const unorm_3& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_3(const norm_3& _Other) __GPU;
double_3 operator-() const __GPU
{
double_3 _Value = *this;
return double_3(-_Value.x, -_Value.y, -_Value.z);
}
double_3& operator++() __GPU
{
double_3 _Value = *this;
++_Value._M_x;
++_Value._M_y;
++_Value._M_z;
*this = _Value;
return *this;
}
double_3 operator++(int) __GPU
{
double_3 _Result = *this;
++(*this);
return _Result;
}
double_3& operator--() __GPU
{
double_3 _Value = *this;
--_Value._M_x;
--_Value._M_y;
--_Value._M_z;
*this = _Value;
return *this;
}
double_3 operator--(int) __GPU
{
double_3 _Result = *this;
--(*this);
return _Result;
}
double_3& operator+=(const double_3& _Other) __GPU
{
double_3 _Value1 = *this;
double_3 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
_Value1.z += _Value2.z;
*this = _Value1;
return *this;
}
double_3& operator-=(const double_3& _Other) __GPU
{
double_3 _Value1 = *this;
double_3 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
_Value1.z -= _Value2.z;
*this = _Value1;
return *this;
}
double_3& operator*=(const double_3& _Other) __GPU
{
double_3 _Value1 = *this;
double_3 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
_Value1.z *= _Value2.z;
*this = _Value1;
return *this;
}
double_3& operator/=(const double_3& _Other) __GPU
{
double_3 _Value1 = *this;
double_3 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
_Value1.z /= _Value2.z;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this double_3 as a double_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) double_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this double_3 as a double_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) double_2 rg;
/// <summary>
/// Returns a double_2 that is composed of element 0, and element 1 of this double_3.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_xy() const __GPU {
return double_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this double_3 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_xy(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 2 of this double_3 as a double_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) double_2 xz;
/// <summary>
/// Property for accessing element 0, and 2 of this double_3 as a double_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) double_2 rb;
/// <summary>
/// Returns a double_2 that is composed of element 0, and element 2 of this double_3.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_xz() const __GPU {
return double_2(_M_x,_M_z);
}
/// <summary>
/// Set element 0, and 2 of this double_3 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_xz(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this double_3 as a double_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) double_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this double_3 as a double_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) double_2 gr;
/// <summary>
/// Returns a double_2 that is composed of element 1, and element 0 of this double_3.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_yx() const __GPU {
return double_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this double_3 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_yx(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 2 of this double_3 as a double_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) double_2 yz;
/// <summary>
/// Property for accessing element 1, and 2 of this double_3 as a double_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) double_2 gb;
/// <summary>
/// Returns a double_2 that is composed of element 1, and element 2 of this double_3.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_yz() const __GPU {
return double_2(_M_y,_M_z);
}
/// <summary>
/// Set element 1, and 2 of this double_3 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_yz(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 0 of this double_3 as a double_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) double_2 zx;
/// <summary>
/// Property for accessing element 2, and 0 of this double_3 as a double_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) double_2 br;
/// <summary>
/// Returns a double_2 that is composed of element 2, and element 0 of this double_3.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_zx() const __GPU {
return double_2(_M_z,_M_x);
}
/// <summary>
/// Set element 2, and 0 of this double_3 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_zx(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 1 of this double_3 as a double_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) double_2 zy;
/// <summary>
/// Property for accessing element 2, and 1 of this double_3 as a double_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) double_2 bg;
/// <summary>
/// Returns a double_2 that is composed of element 2, and element 1 of this double_3.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_zy() const __GPU {
return double_2(_M_z,_M_y);
}
/// <summary>
/// Set element 2, and 1 of this double_3 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_zy(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, 1, and 2 of this double_3 as a double_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) double_3 xyz;
/// <summary>
/// Property for accessing element 0, 1, and 2 of this double_3 as a double_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) double_3 rgb;
/// <summary>
/// Returns a double_3 that is composed of element 0, element 1, and element 2 of this double_3.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_xyz() const __GPU {
return double_3(_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 1, and 2 of this double_3 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_xyz(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 1 of this double_3 as a double_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) double_3 xzy;
/// <summary>
/// Property for accessing element 0, 2, and 1 of this double_3 as a double_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) double_3 rbg;
/// <summary>
/// Returns a double_3 that is composed of element 0, element 2, and element 1 of this double_3.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_xzy() const __GPU {
return double_3(_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 2, and 1 of this double_3 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_xzy(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 2 of this double_3 as a double_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) double_3 yxz;
/// <summary>
/// Property for accessing element 1, 0, and 2 of this double_3 as a double_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) double_3 grb;
/// <summary>
/// Returns a double_3 that is composed of element 1, element 0, and element 2 of this double_3.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_yxz() const __GPU {
return double_3(_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 0, and 2 of this double_3 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_yxz(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 0 of this double_3 as a double_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) double_3 yzx;
/// <summary>
/// Property for accessing element 1, 2, and 0 of this double_3 as a double_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) double_3 gbr;
/// <summary>
/// Returns a double_3 that is composed of element 1, element 2, and element 0 of this double_3.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_yzx() const __GPU {
return double_3(_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 2, and 0 of this double_3 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_yzx(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 1 of this double_3 as a double_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) double_3 zxy;
/// <summary>
/// Property for accessing element 2, 0, and 1 of this double_3 as a double_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) double_3 brg;
/// <summary>
/// Returns a double_3 that is composed of element 2, element 0, and element 1 of this double_3.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_zxy() const __GPU {
return double_3(_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 0, and 1 of this double_3 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_zxy(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 0 of this double_3 as a double_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) double_3 zyx;
/// <summary>
/// Property for accessing element 2, 1, and 0 of this double_3 as a double_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) double_3 bgr;
/// <summary>
/// Returns a double_3 that is composed of element 2, element 1, and element 0 of this double_3.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_zyx() const __GPU {
return double_3(_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 1, and 0 of this double_3 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_zyx(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
};
/// <summary>
/// Represent a short vector of 4 double's.
/// </summary>
class double_4
{
public:
typedef double value_type;
static const int size = 4;
private:
static const _Short_vector_base_type_id _Base_type_id = _Double_type;
private:
value_type _M_x;
value_type _M_y;
value_type _M_z;
value_type _M_w;
public:
/// <summary>
/// Property for accessing element 0 of this double_4 as a double.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) double x;
/// <summary>
/// Property for accessing element 0 of this double_4 as a double.
/// </summary>
__declspec( property( get=get_x, put=set_x) ) double r;
/// <summary>
/// Returns element 0 of this double_4.
/// </summary>
/// <returns>
/// Element 0 of this double_4.
/// </returns>
double get_x() const __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this double_4.
/// </summary>
/// <returns>
/// Reference to element 0 of this double_4.
/// </returns>
double& ref_x() __GPU {
return _M_x;
}
/// <summary>
/// Returns reference to element 0 of this double_4.
/// </summary>
/// <returns>
/// Reference to element 0 of this double_4.
/// </returns>
double& ref_r() __GPU {
return _M_x;
}
/// <summary>
/// Set element 0 of this double_4 with a double.
/// </summary>
/// <param name="_Value">
/// a double value.
/// </param>
void set_x(double _Value) __GPU
{
_M_x = _Value;
}
/// <summary>
/// Property for accessing element 1 of this double_4 as a double.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) double y;
/// <summary>
/// Property for accessing element 1 of this double_4 as a double.
/// </summary>
__declspec( property( get=get_y, put=set_y) ) double g;
/// <summary>
/// Returns element 1 of this double_4.
/// </summary>
/// <returns>
/// Element 1 of this double_4.
/// </returns>
double get_y() const __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this double_4.
/// </summary>
/// <returns>
/// Reference to element 1 of this double_4.
/// </returns>
double& ref_y() __GPU {
return _M_y;
}
/// <summary>
/// Returns reference to element 1 of this double_4.
/// </summary>
/// <returns>
/// Reference to element 1 of this double_4.
/// </returns>
double& ref_g() __GPU {
return _M_y;
}
/// <summary>
/// Set element 1 of this double_4 with a double.
/// </summary>
/// <param name="_Value">
/// a double value.
/// </param>
void set_y(double _Value) __GPU
{
_M_y = _Value;
}
/// <summary>
/// Property for accessing element 2 of this double_4 as a double.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) double z;
/// <summary>
/// Property for accessing element 2 of this double_4 as a double.
/// </summary>
__declspec( property( get=get_z, put=set_z) ) double b;
/// <summary>
/// Returns element 2 of this double_4.
/// </summary>
/// <returns>
/// Element 2 of this double_4.
/// </returns>
double get_z() const __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this double_4.
/// </summary>
/// <returns>
/// Reference to element 2 of this double_4.
/// </returns>
double& ref_z() __GPU {
return _M_z;
}
/// <summary>
/// Returns reference to element 2 of this double_4.
/// </summary>
/// <returns>
/// Reference to element 2 of this double_4.
/// </returns>
double& ref_b() __GPU {
return _M_z;
}
/// <summary>
/// Set element 2 of this double_4 with a double.
/// </summary>
/// <param name="_Value">
/// a double value.
/// </param>
void set_z(double _Value) __GPU
{
_M_z = _Value;
}
/// <summary>
/// Property for accessing element 3 of this double_4 as a double.
/// </summary>
__declspec( property( get=get_w, put=set_w) ) double w;
/// <summary>
/// Property for accessing element 3 of this double_4 as a double.
/// </summary>
__declspec( property( get=get_w, put=set_w) ) double a;
/// <summary>
/// Returns element 3 of this double_4.
/// </summary>
/// <returns>
/// Element 3 of this double_4.
/// </returns>
double get_w() const __GPU {
return _M_w;
}
/// <summary>
/// Returns reference to element 3 of this double_4.
/// </summary>
/// <returns>
/// Reference to element 3 of this double_4.
/// </returns>
double& ref_w() __GPU {
return _M_w;
}
/// <summary>
/// Returns reference to element 3 of this double_4.
/// </summary>
/// <returns>
/// Reference to element 3 of this double_4.
/// </returns>
double& ref_a() __GPU {
return _M_w;
}
/// <summary>
/// Set element 3 of this double_4 with a double.
/// </summary>
/// <param name="_Value">
/// a double value.
/// </param>
void set_w(double _Value) __GPU
{
_M_w = _Value;
}
public:
/// <summary>
/// Default constructor, initializes all elements with 0.
/// </summary>
double_4() __GPU
{
_M_x = 0;
_M_y = 0;
_M_z = 0;
_M_w = 0;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V0">
/// The value to initialize element 0.
/// </param>
/// <param name="_V1">
/// The value to initialize element 1.
/// </param>
/// <param name="_V2">
/// The value to initialize element 2.
/// </param>
/// <param name="_V3">
/// The value to initialize element 3.
/// </param>
double_4(double _V0, double _V1, double _V2, double _V3) __GPU
{
_M_x = _V0;
_M_y = _V1;
_M_z = _V2;
_M_w = _V3;
}
/// <summary>
/// Constructor.
/// </summary>
/// <param name="_V">
/// The value for initialization.
/// </param>
double_4(double _V) __GPU
{
_M_x = _V;
_M_y = _V;
_M_z = _V;
_M_w = _V;
}
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_4(const uint_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_4(const int_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_4(const float_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_4(const unorm_4& _Other) __GPU;
/// <summary>
/// Constructor.
/// Each element is initialized by casting from the corresponding element in _Other.
/// </summary>
/// <param name="_Other">
/// The object used to initialize.
/// </param>
explicit inline double_4(const norm_4& _Other) __GPU;
double_4 operator-() const __GPU
{
double_4 _Value = *this;
return double_4(-_Value.x, -_Value.y, -_Value.z, -_Value.w);
}
double_4& operator++() __GPU
{
double_4 _Value = *this;
++_Value._M_x;
++_Value._M_y;
++_Value._M_z;
++_Value._M_w;
*this = _Value;
return *this;
}
double_4 operator++(int) __GPU
{
double_4 _Result = *this;
++(*this);
return _Result;
}
double_4& operator--() __GPU
{
double_4 _Value = *this;
--_Value._M_x;
--_Value._M_y;
--_Value._M_z;
--_Value._M_w;
*this = _Value;
return *this;
}
double_4 operator--(int) __GPU
{
double_4 _Result = *this;
--(*this);
return _Result;
}
double_4& operator+=(const double_4& _Other) __GPU
{
double_4 _Value1 = *this;
double_4 _Value2 = _Other;
_Value1.x += _Value2.x;
_Value1.y += _Value2.y;
_Value1.z += _Value2.z;
_Value1.w += _Value2.w;
*this = _Value1;
return *this;
}
double_4& operator-=(const double_4& _Other) __GPU
{
double_4 _Value1 = *this;
double_4 _Value2 = _Other;
_Value1.x -= _Value2.x;
_Value1.y -= _Value2.y;
_Value1.z -= _Value2.z;
_Value1.w -= _Value2.w;
*this = _Value1;
return *this;
}
double_4& operator*=(const double_4& _Other) __GPU
{
double_4 _Value1 = *this;
double_4 _Value2 = _Other;
_Value1.x *= _Value2.x;
_Value1.y *= _Value2.y;
_Value1.z *= _Value2.z;
_Value1.w *= _Value2.w;
*this = _Value1;
return *this;
}
double_4& operator/=(const double_4& _Other) __GPU
{
double_4 _Value1 = *this;
double_4 _Value2 = _Other;
_Value1.x /= _Value2.x;
_Value1.y /= _Value2.y;
_Value1.z /= _Value2.z;
_Value1.w /= _Value2.w;
*this = _Value1;
return *this;
}
public:
/// <summary>
/// Property for accessing element 0, and 1 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) double_2 xy;
/// <summary>
/// Property for accessing element 0, and 1 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_xy, put=set_xy) ) double_2 rg;
/// <summary>
/// Returns a double_2 that is composed of element 0, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_xy() const __GPU {
return double_2(_M_x,_M_y);
}
/// <summary>
/// Set element 0, and 1 of this double_4 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_xy(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 2 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) double_2 xz;
/// <summary>
/// Property for accessing element 0, and 2 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_xz, put=set_xz) ) double_2 rb;
/// <summary>
/// Returns a double_2 that is composed of element 0, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_xz() const __GPU {
return double_2(_M_x,_M_z);
}
/// <summary>
/// Set element 0, and 2 of this double_4 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_xz(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 0, and 3 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_xw, put=set_xw) ) double_2 xw;
/// <summary>
/// Property for accessing element 0, and 3 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_xw, put=set_xw) ) double_2 ra;
/// <summary>
/// Returns a double_2 that is composed of element 0, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_xw() const __GPU {
return double_2(_M_x,_M_w);
}
/// <summary>
/// Set element 0, and 3 of this double_4 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_xw(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 0 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) double_2 yx;
/// <summary>
/// Property for accessing element 1, and 0 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_yx, put=set_yx) ) double_2 gr;
/// <summary>
/// Returns a double_2 that is composed of element 1, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_yx() const __GPU {
return double_2(_M_y,_M_x);
}
/// <summary>
/// Set element 1, and 0 of this double_4 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_yx(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 2 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) double_2 yz;
/// <summary>
/// Property for accessing element 1, and 2 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_yz, put=set_yz) ) double_2 gb;
/// <summary>
/// Returns a double_2 that is composed of element 1, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_yz() const __GPU {
return double_2(_M_y,_M_z);
}
/// <summary>
/// Set element 1, and 2 of this double_4 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_yz(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 1, and 3 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_yw, put=set_yw) ) double_2 yw;
/// <summary>
/// Property for accessing element 1, and 3 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_yw, put=set_yw) ) double_2 ga;
/// <summary>
/// Returns a double_2 that is composed of element 1, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_yw() const __GPU {
return double_2(_M_y,_M_w);
}
/// <summary>
/// Set element 1, and 3 of this double_4 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_yw(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 0 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) double_2 zx;
/// <summary>
/// Property for accessing element 2, and 0 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_zx, put=set_zx) ) double_2 br;
/// <summary>
/// Returns a double_2 that is composed of element 2, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_zx() const __GPU {
return double_2(_M_z,_M_x);
}
/// <summary>
/// Set element 2, and 0 of this double_4 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_zx(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 1 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) double_2 zy;
/// <summary>
/// Property for accessing element 2, and 1 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_zy, put=set_zy) ) double_2 bg;
/// <summary>
/// Returns a double_2 that is composed of element 2, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_zy() const __GPU {
return double_2(_M_z,_M_y);
}
/// <summary>
/// Set element 2, and 1 of this double_4 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_zy(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 2, and 3 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_zw, put=set_zw) ) double_2 zw;
/// <summary>
/// Property for accessing element 2, and 3 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_zw, put=set_zw) ) double_2 ba;
/// <summary>
/// Returns a double_2 that is composed of element 2, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_zw() const __GPU {
return double_2(_M_z,_M_w);
}
/// <summary>
/// Set element 2, and 3 of this double_4 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_zw(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 0 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_wx, put=set_wx) ) double_2 wx;
/// <summary>
/// Property for accessing element 3, and 0 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_wx, put=set_wx) ) double_2 ar;
/// <summary>
/// Returns a double_2 that is composed of element 3, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_wx() const __GPU {
return double_2(_M_w,_M_x);
}
/// <summary>
/// Set element 3, and 0 of this double_4 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_wx(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 1 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_wy, put=set_wy) ) double_2 wy;
/// <summary>
/// Property for accessing element 3, and 1 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_wy, put=set_wy) ) double_2 ag;
/// <summary>
/// Returns a double_2 that is composed of element 3, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_wy() const __GPU {
return double_2(_M_w,_M_y);
}
/// <summary>
/// Set element 3, and 1 of this double_4 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_wy(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
}
/// <summary>
/// Property for accessing element 3, and 2 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_wz, put=set_wz) ) double_2 wz;
/// <summary>
/// Property for accessing element 3, and 2 of this double_4 as a double_2.
/// </summary>
__declspec( property( get=get_wz, put=set_wz) ) double_2 ab;
/// <summary>
/// Returns a double_2 that is composed of element 3, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_2.
/// </returns>
double_2 get_wz() const __GPU {
return double_2(_M_w,_M_z);
}
/// <summary>
/// Set element 3, and 2 of this double_4 with a double_2.
/// </summary>
/// <param name="_Value">
/// a double_2 value.
/// </param>
void set_wz(const double_2& _Value) __GPU
{
double_2 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
}
/// <summary>
/// Property for accessing element 0, 1, and 2 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) double_3 xyz;
/// <summary>
/// Property for accessing element 0, 1, and 2 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_xyz, put=set_xyz) ) double_3 rgb;
/// <summary>
/// Returns a double_3 that is composed of element 0, element 1, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_xyz() const __GPU {
return double_3(_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 1, and 2 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_xyz(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 1, and 3 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_xyw, put=set_xyw) ) double_3 xyw;
/// <summary>
/// Property for accessing element 0, 1, and 3 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_xyw, put=set_xyw) ) double_3 rga;
/// <summary>
/// Returns a double_3 that is composed of element 0, element 1, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_xyw() const __GPU {
return double_3(_M_x,_M_y,_M_w);
}
/// <summary>
/// Set element 0, 1, and 3 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_xyw(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 1 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) double_3 xzy;
/// <summary>
/// Property for accessing element 0, 2, and 1 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_xzy, put=set_xzy) ) double_3 rbg;
/// <summary>
/// Returns a double_3 that is composed of element 0, element 2, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_xzy() const __GPU {
return double_3(_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 2, and 1 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_xzy(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 2, and 3 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_xzw, put=set_xzw) ) double_3 xzw;
/// <summary>
/// Property for accessing element 0, 2, and 3 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_xzw, put=set_xzw) ) double_3 rba;
/// <summary>
/// Returns a double_3 that is composed of element 0, element 2, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_xzw() const __GPU {
return double_3(_M_x,_M_z,_M_w);
}
/// <summary>
/// Set element 0, 2, and 3 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_xzw(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 3, and 1 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_xwy, put=set_xwy) ) double_3 xwy;
/// <summary>
/// Property for accessing element 0, 3, and 1 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_xwy, put=set_xwy) ) double_3 rag;
/// <summary>
/// Returns a double_3 that is composed of element 0, element 3, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_xwy() const __GPU {
return double_3(_M_x,_M_w,_M_y);
}
/// <summary>
/// Set element 0, 3, and 1 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_xwy(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 3, and 2 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_xwz, put=set_xwz) ) double_3 xwz;
/// <summary>
/// Property for accessing element 0, 3, and 2 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_xwz, put=set_xwz) ) double_3 rab;
/// <summary>
/// Returns a double_3 that is composed of element 0, element 3, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_xwz() const __GPU {
return double_3(_M_x,_M_w,_M_z);
}
/// <summary>
/// Set element 0, 3, and 2 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_xwz(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 2 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) double_3 yxz;
/// <summary>
/// Property for accessing element 1, 0, and 2 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_yxz, put=set_yxz) ) double_3 grb;
/// <summary>
/// Returns a double_3 that is composed of element 1, element 0, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_yxz() const __GPU {
return double_3(_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 0, and 2 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_yxz(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 0, and 3 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_yxw, put=set_yxw) ) double_3 yxw;
/// <summary>
/// Property for accessing element 1, 0, and 3 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_yxw, put=set_yxw) ) double_3 gra;
/// <summary>
/// Returns a double_3 that is composed of element 1, element 0, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_yxw() const __GPU {
return double_3(_M_y,_M_x,_M_w);
}
/// <summary>
/// Set element 1, 0, and 3 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_yxw(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 0 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) double_3 yzx;
/// <summary>
/// Property for accessing element 1, 2, and 0 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_yzx, put=set_yzx) ) double_3 gbr;
/// <summary>
/// Returns a double_3 that is composed of element 1, element 2, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_yzx() const __GPU {
return double_3(_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 2, and 0 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_yzx(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 2, and 3 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_yzw, put=set_yzw) ) double_3 yzw;
/// <summary>
/// Property for accessing element 1, 2, and 3 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_yzw, put=set_yzw) ) double_3 gba;
/// <summary>
/// Returns a double_3 that is composed of element 1, element 2, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_yzw() const __GPU {
return double_3(_M_y,_M_z,_M_w);
}
/// <summary>
/// Set element 1, 2, and 3 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_yzw(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 3, and 0 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_ywx, put=set_ywx) ) double_3 ywx;
/// <summary>
/// Property for accessing element 1, 3, and 0 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_ywx, put=set_ywx) ) double_3 gar;
/// <summary>
/// Returns a double_3 that is composed of element 1, element 3, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_ywx() const __GPU {
return double_3(_M_y,_M_w,_M_x);
}
/// <summary>
/// Set element 1, 3, and 0 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_ywx(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 1, 3, and 2 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_ywz, put=set_ywz) ) double_3 ywz;
/// <summary>
/// Property for accessing element 1, 3, and 2 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_ywz, put=set_ywz) ) double_3 gab;
/// <summary>
/// Returns a double_3 that is composed of element 1, element 3, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_ywz() const __GPU {
return double_3(_M_y,_M_w,_M_z);
}
/// <summary>
/// Set element 1, 3, and 2 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_ywz(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 1 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) double_3 zxy;
/// <summary>
/// Property for accessing element 2, 0, and 1 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_zxy, put=set_zxy) ) double_3 brg;
/// <summary>
/// Returns a double_3 that is composed of element 2, element 0, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_zxy() const __GPU {
return double_3(_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 0, and 1 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_zxy(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 0, and 3 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_zxw, put=set_zxw) ) double_3 zxw;
/// <summary>
/// Property for accessing element 2, 0, and 3 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_zxw, put=set_zxw) ) double_3 bra;
/// <summary>
/// Returns a double_3 that is composed of element 2, element 0, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_zxw() const __GPU {
return double_3(_M_z,_M_x,_M_w);
}
/// <summary>
/// Set element 2, 0, and 3 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_zxw(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 0 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) double_3 zyx;
/// <summary>
/// Property for accessing element 2, 1, and 0 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_zyx, put=set_zyx) ) double_3 bgr;
/// <summary>
/// Returns a double_3 that is composed of element 2, element 1, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_zyx() const __GPU {
return double_3(_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 1, and 0 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_zyx(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 1, and 3 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_zyw, put=set_zyw) ) double_3 zyw;
/// <summary>
/// Property for accessing element 2, 1, and 3 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_zyw, put=set_zyw) ) double_3 bga;
/// <summary>
/// Returns a double_3 that is composed of element 2, element 1, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_zyw() const __GPU {
return double_3(_M_z,_M_y,_M_w);
}
/// <summary>
/// Set element 2, 1, and 3 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_zyw(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 3, and 0 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_zwx, put=set_zwx) ) double_3 zwx;
/// <summary>
/// Property for accessing element 2, 3, and 0 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_zwx, put=set_zwx) ) double_3 bar;
/// <summary>
/// Returns a double_3 that is composed of element 2, element 3, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_zwx() const __GPU {
return double_3(_M_z,_M_w,_M_x);
}
/// <summary>
/// Set element 2, 3, and 0 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_zwx(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 2, 3, and 1 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_zwy, put=set_zwy) ) double_3 zwy;
/// <summary>
/// Property for accessing element 2, 3, and 1 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_zwy, put=set_zwy) ) double_3 bag;
/// <summary>
/// Returns a double_3 that is composed of element 2, element 3, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_zwy() const __GPU {
return double_3(_M_z,_M_w,_M_y);
}
/// <summary>
/// Set element 2, 3, and 1 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_zwy(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 0, and 1 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_wxy, put=set_wxy) ) double_3 wxy;
/// <summary>
/// Property for accessing element 3, 0, and 1 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_wxy, put=set_wxy) ) double_3 arg;
/// <summary>
/// Returns a double_3 that is composed of element 3, element 0, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_wxy() const __GPU {
return double_3(_M_w,_M_x,_M_y);
}
/// <summary>
/// Set element 3, 0, and 1 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_wxy(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 0, and 2 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_wxz, put=set_wxz) ) double_3 wxz;
/// <summary>
/// Property for accessing element 3, 0, and 2 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_wxz, put=set_wxz) ) double_3 arb;
/// <summary>
/// Returns a double_3 that is composed of element 3, element 0, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_wxz() const __GPU {
return double_3(_M_w,_M_x,_M_z);
}
/// <summary>
/// Set element 3, 0, and 2 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_wxz(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 1, and 0 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_wyx, put=set_wyx) ) double_3 wyx;
/// <summary>
/// Property for accessing element 3, 1, and 0 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_wyx, put=set_wyx) ) double_3 agr;
/// <summary>
/// Returns a double_3 that is composed of element 3, element 1, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_wyx() const __GPU {
return double_3(_M_w,_M_y,_M_x);
}
/// <summary>
/// Set element 3, 1, and 0 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_wyx(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 1, and 2 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_wyz, put=set_wyz) ) double_3 wyz;
/// <summary>
/// Property for accessing element 3, 1, and 2 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_wyz, put=set_wyz) ) double_3 agb;
/// <summary>
/// Returns a double_3 that is composed of element 3, element 1, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_wyz() const __GPU {
return double_3(_M_w,_M_y,_M_z);
}
/// <summary>
/// Set element 3, 1, and 2 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_wyz(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 2, and 0 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_wzx, put=set_wzx) ) double_3 wzx;
/// <summary>
/// Property for accessing element 3, 2, and 0 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_wzx, put=set_wzx) ) double_3 abr;
/// <summary>
/// Returns a double_3 that is composed of element 3, element 2, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_wzx() const __GPU {
return double_3(_M_w,_M_z,_M_x);
}
/// <summary>
/// Set element 3, 2, and 0 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_wzx(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
}
/// <summary>
/// Property for accessing element 3, 2, and 1 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_wzy, put=set_wzy) ) double_3 wzy;
/// <summary>
/// Property for accessing element 3, 2, and 1 of this double_4 as a double_3.
/// </summary>
__declspec( property( get=get_wzy, put=set_wzy) ) double_3 abg;
/// <summary>
/// Returns a double_3 that is composed of element 3, element 2, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_3.
/// </returns>
double_3 get_wzy() const __GPU {
return double_3(_M_w,_M_z,_M_y);
}
/// <summary>
/// Set element 3, 2, and 1 of this double_4 with a double_3.
/// </summary>
/// <param name="_Value">
/// a double_3 value.
/// </param>
void set_wzy(const double_3& _Value) __GPU
{
double_3 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
}
/// <summary>
/// Property for accessing element 0, 1, 2, and 3 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_xyzw, put=set_xyzw) ) double_4 xyzw;
/// <summary>
/// Property for accessing element 0, 1, 2, and 3 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_xyzw, put=set_xyzw) ) double_4 rgba;
/// <summary>
/// Returns a double_4 that is composed of element 0, element 1, element 2, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_xyzw() const __GPU {
return double_4(_M_x,_M_y,_M_z,_M_w);
}
/// <summary>
/// Set element 0, 1, 2, and 3 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_xyzw(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 1, 3, and 2 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_xywz, put=set_xywz) ) double_4 xywz;
/// <summary>
/// Property for accessing element 0, 1, 3, and 2 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_xywz, put=set_xywz) ) double_4 rgab;
/// <summary>
/// Returns a double_4 that is composed of element 0, element 1, element 3, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_xywz() const __GPU {
return double_4(_M_x,_M_y,_M_w,_M_z);
}
/// <summary>
/// Set element 0, 1, 3, and 2 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_xywz(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_x = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 2, 1, and 3 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_xzyw, put=set_xzyw) ) double_4 xzyw;
/// <summary>
/// Property for accessing element 0, 2, 1, and 3 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_xzyw, put=set_xzyw) ) double_4 rbga;
/// <summary>
/// Returns a double_4 that is composed of element 0, element 2, element 1, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_xzyw() const __GPU {
return double_4(_M_x,_M_z,_M_y,_M_w);
}
/// <summary>
/// Set element 0, 2, 1, and 3 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_xzyw(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 2, 3, and 1 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_xzwy, put=set_xzwy) ) double_4 xzwy;
/// <summary>
/// Property for accessing element 0, 2, 3, and 1 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_xzwy, put=set_xzwy) ) double_4 rbag;
/// <summary>
/// Returns a double_4 that is composed of element 0, element 2, element 3, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_xzwy() const __GPU {
return double_4(_M_x,_M_z,_M_w,_M_y);
}
/// <summary>
/// Set element 0, 2, 3, and 1 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_xzwy(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_x = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 3, 1, and 2 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_xwyz, put=set_xwyz) ) double_4 xwyz;
/// <summary>
/// Property for accessing element 0, 3, 1, and 2 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_xwyz, put=set_xwyz) ) double_4 ragb;
/// <summary>
/// Returns a double_4 that is composed of element 0, element 3, element 1, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_xwyz() const __GPU {
return double_4(_M_x,_M_w,_M_y,_M_z);
}
/// <summary>
/// Set element 0, 3, 1, and 2 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_xwyz(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 0, 3, 2, and 1 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_xwzy, put=set_xwzy) ) double_4 xwzy;
/// <summary>
/// Property for accessing element 0, 3, 2, and 1 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_xwzy, put=set_xwzy) ) double_4 rabg;
/// <summary>
/// Returns a double_4 that is composed of element 0, element 3, element 2, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_xwzy() const __GPU {
return double_4(_M_x,_M_w,_M_z,_M_y);
}
/// <summary>
/// Set element 0, 3, 2, and 1 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_xwzy(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_x = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 0, 2, and 3 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_yxzw, put=set_yxzw) ) double_4 yxzw;
/// <summary>
/// Property for accessing element 1, 0, 2, and 3 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_yxzw, put=set_yxzw) ) double_4 grba;
/// <summary>
/// Returns a double_4 that is composed of element 1, element 0, element 2, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_yxzw() const __GPU {
return double_4(_M_y,_M_x,_M_z,_M_w);
}
/// <summary>
/// Set element 1, 0, 2, and 3 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_yxzw(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 0, 3, and 2 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_yxwz, put=set_yxwz) ) double_4 yxwz;
/// <summary>
/// Property for accessing element 1, 0, 3, and 2 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_yxwz, put=set_yxwz) ) double_4 grab;
/// <summary>
/// Returns a double_4 that is composed of element 1, element 0, element 3, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_yxwz() const __GPU {
return double_4(_M_y,_M_x,_M_w,_M_z);
}
/// <summary>
/// Set element 1, 0, 3, and 2 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_yxwz(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_y = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 2, 0, and 3 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_yzxw, put=set_yzxw) ) double_4 yzxw;
/// <summary>
/// Property for accessing element 1, 2, 0, and 3 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_yzxw, put=set_yzxw) ) double_4 gbra;
/// <summary>
/// Returns a double_4 that is composed of element 1, element 2, element 0, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_yzxw() const __GPU {
return double_4(_M_y,_M_z,_M_x,_M_w);
}
/// <summary>
/// Set element 1, 2, 0, and 3 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_yzxw(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 2, 3, and 0 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_yzwx, put=set_yzwx) ) double_4 yzwx;
/// <summary>
/// Property for accessing element 1, 2, 3, and 0 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_yzwx, put=set_yzwx) ) double_4 gbar;
/// <summary>
/// Returns a double_4 that is composed of element 1, element 2, element 3, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_yzwx() const __GPU {
return double_4(_M_y,_M_z,_M_w,_M_x);
}
/// <summary>
/// Set element 1, 2, 3, and 0 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_yzwx(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_y = _Val.x;
_M_z = _Val.y;
_M_w = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 3, 0, and 2 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_ywxz, put=set_ywxz) ) double_4 ywxz;
/// <summary>
/// Property for accessing element 1, 3, 0, and 2 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_ywxz, put=set_ywxz) ) double_4 garb;
/// <summary>
/// Returns a double_4 that is composed of element 1, element 3, element 0, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_ywxz() const __GPU {
return double_4(_M_y,_M_w,_M_x,_M_z);
}
/// <summary>
/// Set element 1, 3, 0, and 2 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_ywxz(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 1, 3, 2, and 0 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_ywzx, put=set_ywzx) ) double_4 ywzx;
/// <summary>
/// Property for accessing element 1, 3, 2, and 0 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_ywzx, put=set_ywzx) ) double_4 gabr;
/// <summary>
/// Returns a double_4 that is composed of element 1, element 3, element 2, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_ywzx() const __GPU {
return double_4(_M_y,_M_w,_M_z,_M_x);
}
/// <summary>
/// Set element 1, 3, 2, and 0 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_ywzx(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_y = _Val.x;
_M_w = _Val.y;
_M_z = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 0, 1, and 3 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_zxyw, put=set_zxyw) ) double_4 zxyw;
/// <summary>
/// Property for accessing element 2, 0, 1, and 3 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_zxyw, put=set_zxyw) ) double_4 brga;
/// <summary>
/// Returns a double_4 that is composed of element 2, element 0, element 1, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_zxyw() const __GPU {
return double_4(_M_z,_M_x,_M_y,_M_w);
}
/// <summary>
/// Set element 2, 0, 1, and 3 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_zxyw(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 0, 3, and 1 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_zxwy, put=set_zxwy) ) double_4 zxwy;
/// <summary>
/// Property for accessing element 2, 0, 3, and 1 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_zxwy, put=set_zxwy) ) double_4 brag;
/// <summary>
/// Returns a double_4 that is composed of element 2, element 0, element 3, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_zxwy() const __GPU {
return double_4(_M_z,_M_x,_M_w,_M_y);
}
/// <summary>
/// Set element 2, 0, 3, and 1 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_zxwy(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_z = _Val.x;
_M_x = _Val.y;
_M_w = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 1, 0, and 3 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_zyxw, put=set_zyxw) ) double_4 zyxw;
/// <summary>
/// Property for accessing element 2, 1, 0, and 3 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_zyxw, put=set_zyxw) ) double_4 bgra;
/// <summary>
/// Returns a double_4 that is composed of element 2, element 1, element 0, and element 3 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_zyxw() const __GPU {
return double_4(_M_z,_M_y,_M_x,_M_w);
}
/// <summary>
/// Set element 2, 1, 0, and 3 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_zyxw(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
_M_w = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 1, 3, and 0 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_zywx, put=set_zywx) ) double_4 zywx;
/// <summary>
/// Property for accessing element 2, 1, 3, and 0 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_zywx, put=set_zywx) ) double_4 bgar;
/// <summary>
/// Returns a double_4 that is composed of element 2, element 1, element 3, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_zywx() const __GPU {
return double_4(_M_z,_M_y,_M_w,_M_x);
}
/// <summary>
/// Set element 2, 1, 3, and 0 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_zywx(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_z = _Val.x;
_M_y = _Val.y;
_M_w = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 3, 0, and 1 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_zwxy, put=set_zwxy) ) double_4 zwxy;
/// <summary>
/// Property for accessing element 2, 3, 0, and 1 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_zwxy, put=set_zwxy) ) double_4 barg;
/// <summary>
/// Returns a double_4 that is composed of element 2, element 3, element 0, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_zwxy() const __GPU {
return double_4(_M_z,_M_w,_M_x,_M_y);
}
/// <summary>
/// Set element 2, 3, 0, and 1 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_zwxy(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_x = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 2, 3, 1, and 0 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_zwyx, put=set_zwyx) ) double_4 zwyx;
/// <summary>
/// Property for accessing element 2, 3, 1, and 0 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_zwyx, put=set_zwyx) ) double_4 bagr;
/// <summary>
/// Returns a double_4 that is composed of element 2, element 3, element 1, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_zwyx() const __GPU {
return double_4(_M_z,_M_w,_M_y,_M_x);
}
/// <summary>
/// Set element 2, 3, 1, and 0 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_zwyx(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_z = _Val.x;
_M_w = _Val.y;
_M_y = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 0, 1, and 2 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_wxyz, put=set_wxyz) ) double_4 wxyz;
/// <summary>
/// Property for accessing element 3, 0, 1, and 2 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_wxyz, put=set_wxyz) ) double_4 argb;
/// <summary>
/// Returns a double_4 that is composed of element 3, element 0, element 1, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_wxyz() const __GPU {
return double_4(_M_w,_M_x,_M_y,_M_z);
}
/// <summary>
/// Set element 3, 0, 1, and 2 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_wxyz(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_y = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 0, 2, and 1 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_wxzy, put=set_wxzy) ) double_4 wxzy;
/// <summary>
/// Property for accessing element 3, 0, 2, and 1 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_wxzy, put=set_wxzy) ) double_4 arbg;
/// <summary>
/// Returns a double_4 that is composed of element 3, element 0, element 2, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_wxzy() const __GPU {
return double_4(_M_w,_M_x,_M_z,_M_y);
}
/// <summary>
/// Set element 3, 0, 2, and 1 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_wxzy(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_w = _Val.x;
_M_x = _Val.y;
_M_z = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 1, 0, and 2 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_wyxz, put=set_wyxz) ) double_4 wyxz;
/// <summary>
/// Property for accessing element 3, 1, 0, and 2 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_wyxz, put=set_wyxz) ) double_4 agrb;
/// <summary>
/// Returns a double_4 that is composed of element 3, element 1, element 0, and element 2 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_wyxz() const __GPU {
return double_4(_M_w,_M_y,_M_x,_M_z);
}
/// <summary>
/// Set element 3, 1, 0, and 2 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_wyxz(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_x = _Val.z;
_M_z = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 1, 2, and 0 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_wyzx, put=set_wyzx) ) double_4 wyzx;
/// <summary>
/// Property for accessing element 3, 1, 2, and 0 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_wyzx, put=set_wyzx) ) double_4 agbr;
/// <summary>
/// Returns a double_4 that is composed of element 3, element 1, element 2, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_wyzx() const __GPU {
return double_4(_M_w,_M_y,_M_z,_M_x);
}
/// <summary>
/// Set element 3, 1, 2, and 0 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_wyzx(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_w = _Val.x;
_M_y = _Val.y;
_M_z = _Val.z;
_M_x = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 2, 0, and 1 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_wzxy, put=set_wzxy) ) double_4 wzxy;
/// <summary>
/// Property for accessing element 3, 2, 0, and 1 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_wzxy, put=set_wzxy) ) double_4 abrg;
/// <summary>
/// Returns a double_4 that is composed of element 3, element 2, element 0, and element 1 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_wzxy() const __GPU {
return double_4(_M_w,_M_z,_M_x,_M_y);
}
/// <summary>
/// Set element 3, 2, 0, and 1 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_wzxy(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_x = _Val.z;
_M_y = _Val.w;
}
/// <summary>
/// Property for accessing element 3, 2, 1, and 0 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_wzyx, put=set_wzyx) ) double_4 wzyx;
/// <summary>
/// Property for accessing element 3, 2, 1, and 0 of this double_4 as a double_4.
/// </summary>
__declspec( property( get=get_wzyx, put=set_wzyx) ) double_4 abgr;
/// <summary>
/// Returns a double_4 that is composed of element 3, element 2, element 1, and element 0 of this double_4.
/// </summary>
/// <returns>
/// a double_4.
/// </returns>
double_4 get_wzyx() const __GPU {
return double_4(_M_w,_M_z,_M_y,_M_x);
}
/// <summary>
/// Set element 3, 2, 1, and 0 of this double_4 with a double_4.
/// </summary>
/// <param name="_Value">
/// a double_4 value.
/// </param>
void set_wzyx(const double_4& _Value) __GPU
{
double_4 _Val = _Value;
_M_w = _Val.x;
_M_z = _Val.y;
_M_y = _Val.z;
_M_x = _Val.w;
}
};
uint_2::uint_2(const int_2& _Other) __GPU
{
int_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
uint_2::uint_2(const float_2& _Other) __GPU
{
float_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
uint_2::uint_2(const unorm_2& _Other) __GPU
{
unorm_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
uint_2::uint_2(const norm_2& _Other) __GPU
{
norm_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
uint_2::uint_2(const double_2& _Other) __GPU
{
double_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
uint_3::uint_3(const int_3& _Other) __GPU
{
int_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
uint_3::uint_3(const float_3& _Other) __GPU
{
float_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
uint_3::uint_3(const unorm_3& _Other) __GPU
{
unorm_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
uint_3::uint_3(const norm_3& _Other) __GPU
{
norm_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
uint_3::uint_3(const double_3& _Other) __GPU
{
double_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
uint_4::uint_4(const int_4& _Other) __GPU
{
int_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
uint_4::uint_4(const float_4& _Other) __GPU
{
float_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
uint_4::uint_4(const unorm_4& _Other) __GPU
{
unorm_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
uint_4::uint_4(const norm_4& _Other) __GPU
{
norm_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
uint_4::uint_4(const double_4& _Other) __GPU
{
double_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
int_2::int_2(const uint_2& _Other) __GPU
{
uint_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
int_2::int_2(const float_2& _Other) __GPU
{
float_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
int_2::int_2(const unorm_2& _Other) __GPU
{
unorm_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
int_2::int_2(const norm_2& _Other) __GPU
{
norm_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
int_2::int_2(const double_2& _Other) __GPU
{
double_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
int_3::int_3(const uint_3& _Other) __GPU
{
uint_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
int_3::int_3(const float_3& _Other) __GPU
{
float_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
int_3::int_3(const unorm_3& _Other) __GPU
{
unorm_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
int_3::int_3(const norm_3& _Other) __GPU
{
norm_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
int_3::int_3(const double_3& _Other) __GPU
{
double_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
int_4::int_4(const uint_4& _Other) __GPU
{
uint_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
int_4::int_4(const float_4& _Other) __GPU
{
float_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
int_4::int_4(const unorm_4& _Other) __GPU
{
unorm_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
int_4::int_4(const norm_4& _Other) __GPU
{
norm_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
int_4::int_4(const double_4& _Other) __GPU
{
double_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
float_2::float_2(const uint_2& _Other) __GPU
{
uint_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
float_2::float_2(const int_2& _Other) __GPU
{
int_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
float_2::float_2(const unorm_2& _Other) __GPU
{
unorm_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
float_2::float_2(const norm_2& _Other) __GPU
{
norm_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
float_2::float_2(const double_2& _Other) __GPU
{
double_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
float_3::float_3(const uint_3& _Other) __GPU
{
uint_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
float_3::float_3(const int_3& _Other) __GPU
{
int_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
float_3::float_3(const unorm_3& _Other) __GPU
{
unorm_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
float_3::float_3(const norm_3& _Other) __GPU
{
norm_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
float_3::float_3(const double_3& _Other) __GPU
{
double_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
float_4::float_4(const uint_4& _Other) __GPU
{
uint_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
float_4::float_4(const int_4& _Other) __GPU
{
int_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
float_4::float_4(const unorm_4& _Other) __GPU
{
unorm_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
float_4::float_4(const norm_4& _Other) __GPU
{
norm_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
float_4::float_4(const double_4& _Other) __GPU
{
double_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
unorm_2::unorm_2(const uint_2& _Other) __GPU
{
uint_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
unorm_2::unorm_2(const int_2& _Other) __GPU
{
int_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
unorm_2::unorm_2(const float_2& _Other) __GPU
{
float_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
unorm_2::unorm_2(const norm_2& _Other) __GPU
{
norm_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
unorm_2::unorm_2(const double_2& _Other) __GPU
{
double_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
unorm_3::unorm_3(const uint_3& _Other) __GPU
{
uint_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
unorm_3::unorm_3(const int_3& _Other) __GPU
{
int_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
unorm_3::unorm_3(const float_3& _Other) __GPU
{
float_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
unorm_3::unorm_3(const norm_3& _Other) __GPU
{
norm_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
unorm_3::unorm_3(const double_3& _Other) __GPU
{
double_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
unorm_4::unorm_4(const uint_4& _Other) __GPU
{
uint_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
unorm_4::unorm_4(const int_4& _Other) __GPU
{
int_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
unorm_4::unorm_4(const float_4& _Other) __GPU
{
float_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
unorm_4::unorm_4(const norm_4& _Other) __GPU
{
norm_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
unorm_4::unorm_4(const double_4& _Other) __GPU
{
double_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
norm_2::norm_2(const uint_2& _Other) __GPU
{
uint_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
norm_2::norm_2(const int_2& _Other) __GPU
{
int_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
norm_2::norm_2(const float_2& _Other) __GPU
{
float_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
norm_2::norm_2(const unorm_2& _Other) __GPU
{
unorm_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
norm_2::norm_2(const double_2& _Other) __GPU
{
double_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
norm_3::norm_3(const uint_3& _Other) __GPU
{
uint_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
norm_3::norm_3(const int_3& _Other) __GPU
{
int_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
norm_3::norm_3(const float_3& _Other) __GPU
{
float_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
norm_3::norm_3(const unorm_3& _Other) __GPU
{
unorm_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
norm_3::norm_3(const double_3& _Other) __GPU
{
double_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
norm_4::norm_4(const uint_4& _Other) __GPU
{
uint_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
norm_4::norm_4(const int_4& _Other) __GPU
{
int_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
norm_4::norm_4(const float_4& _Other) __GPU
{
float_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
norm_4::norm_4(const unorm_4& _Other) __GPU
{
unorm_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
norm_4::norm_4(const double_4& _Other) __GPU
{
double_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
double_2::double_2(const uint_2& _Other) __GPU
{
uint_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
double_2::double_2(const int_2& _Other) __GPU
{
int_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
double_2::double_2(const float_2& _Other) __GPU
{
float_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
double_2::double_2(const unorm_2& _Other) __GPU
{
unorm_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
double_2::double_2(const norm_2& _Other) __GPU
{
norm_2 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
}
double_3::double_3(const uint_3& _Other) __GPU
{
uint_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
double_3::double_3(const int_3& _Other) __GPU
{
int_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
double_3::double_3(const float_3& _Other) __GPU
{
float_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
double_3::double_3(const unorm_3& _Other) __GPU
{
unorm_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
double_3::double_3(const norm_3& _Other) __GPU
{
norm_3 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
}
double_4::double_4(const uint_4& _Other) __GPU
{
uint_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
double_4::double_4(const int_4& _Other) __GPU
{
int_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
double_4::double_4(const float_4& _Other) __GPU
{
float_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
double_4::double_4(const unorm_4& _Other) __GPU
{
unorm_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
double_4::double_4(const norm_4& _Other) __GPU
{
norm_4 _Value = _Other;
_M_x = static_cast<value_type>(_Value.x);
_M_y = static_cast<value_type>(_Value.y);
_M_z = static_cast<value_type>(_Value.z);
_M_w = static_cast<value_type>(_Value.w);
}
inline uint_2 operator+(const uint_2& _Lhs, const uint_2& _Rhs) __GPU
{
uint_2 _Value1 = _Lhs;
uint_2 _Value2 = _Rhs;
return uint_2(_Value1.x + _Value2.x, _Value1.y + _Value2.y);
}
inline uint_2 operator-(const uint_2& _Lhs, const uint_2& _Rhs) __GPU
{
uint_2 _Value1 = _Lhs;
uint_2 _Value2 = _Rhs;
return uint_2(_Value1.x - _Value2.x, _Value1.y - _Value2.y);
}
inline uint_2 operator*(const uint_2& _Lhs, const uint_2& _Rhs) __GPU
{
uint_2 _Value1 = _Lhs;
uint_2 _Value2 = _Rhs;
return uint_2(_Value1.x * _Value2.x, _Value1.y * _Value2.y);
}
inline uint_2 operator/(const uint_2& _Lhs, const uint_2& _Rhs) __GPU
{
uint_2 _Value1 = _Lhs;
uint_2 _Value2 = _Rhs;
return uint_2(_Value1.x / _Value2.x, _Value1.y / _Value2.y);
}
inline bool operator==(const uint_2& _Lhs, const uint_2& _Rhs) __GPU
{
uint_2 _Value1 = _Lhs;
uint_2 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y;
}
inline bool operator!=(const uint_2& _Lhs, const uint_2& _Rhs) __GPU
{
uint_2 _Value1 = _Lhs;
uint_2 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y;
}
inline uint_2 operator%(const uint_2& _Lhs, const uint_2& _Rhs) __GPU
{
uint_2 _Value1 = _Lhs;
uint_2 _Value2 = _Rhs;
return uint_2(_Value1.x % _Value2.x, _Value1.y % _Value2.y);
}
inline uint_2 operator^(const uint_2& _Lhs, const uint_2& _Rhs) __GPU
{
uint_2 _Value1 = _Lhs;
uint_2 _Value2 = _Rhs;
return uint_2(_Value1.x ^ _Value2.x, _Value1.y ^ _Value2.y);
}
inline uint_2 operator|(const uint_2& _Lhs, const uint_2& _Rhs) __GPU
{
uint_2 _Value1 = _Lhs;
uint_2 _Value2 = _Rhs;
return uint_2(_Value1.x | _Value2.x, _Value1.y | _Value2.y);
}
inline uint_2 operator&(const uint_2& _Lhs, const uint_2& _Rhs) __GPU
{
uint_2 _Value1 = _Lhs;
uint_2 _Value2 = _Rhs;
return uint_2(_Value1.x & _Value2.x, _Value1.y & _Value2.y);
}
inline uint_2 operator<<(const uint_2& _Lhs, const uint_2& _Rhs) __GPU
{
uint_2 _Value1 = _Lhs;
uint_2 _Value2 = _Rhs;
return uint_2(_Value1.x << _Value2.x, _Value1.y << _Value2.y);
}
inline uint_2 operator>>(const uint_2& _Lhs, const uint_2& _Rhs) __GPU
{
uint_2 _Value1 = _Lhs;
uint_2 _Value2 = _Rhs;
return uint_2(_Value1.x >> _Value2.x, _Value1.y >> _Value2.y);
}
inline uint_3 operator+(const uint_3& _Lhs, const uint_3& _Rhs) __GPU
{
uint_3 _Value1 = _Lhs;
uint_3 _Value2 = _Rhs;
return uint_3(_Value1.x + _Value2.x, _Value1.y + _Value2.y, _Value1.z + _Value2.z);
}
inline uint_3 operator-(const uint_3& _Lhs, const uint_3& _Rhs) __GPU
{
uint_3 _Value1 = _Lhs;
uint_3 _Value2 = _Rhs;
return uint_3(_Value1.x - _Value2.x, _Value1.y - _Value2.y, _Value1.z - _Value2.z);
}
inline uint_3 operator*(const uint_3& _Lhs, const uint_3& _Rhs) __GPU
{
uint_3 _Value1 = _Lhs;
uint_3 _Value2 = _Rhs;
return uint_3(_Value1.x * _Value2.x, _Value1.y * _Value2.y, _Value1.z * _Value2.z);
}
inline uint_3 operator/(const uint_3& _Lhs, const uint_3& _Rhs) __GPU
{
uint_3 _Value1 = _Lhs;
uint_3 _Value2 = _Rhs;
return uint_3(_Value1.x / _Value2.x, _Value1.y / _Value2.y, _Value1.z / _Value2.z);
}
inline bool operator==(const uint_3& _Lhs, const uint_3& _Rhs) __GPU
{
uint_3 _Value1 = _Lhs;
uint_3 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y && _Value1.z == _Value2.z;
}
inline bool operator!=(const uint_3& _Lhs, const uint_3& _Rhs) __GPU
{
uint_3 _Value1 = _Lhs;
uint_3 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y || _Value1.z != _Value2.z;
}
inline uint_3 operator%(const uint_3& _Lhs, const uint_3& _Rhs) __GPU
{
uint_3 _Value1 = _Lhs;
uint_3 _Value2 = _Rhs;
return uint_3(_Value1.x % _Value2.x, _Value1.y % _Value2.y, _Value1.z % _Value2.z);
}
inline uint_3 operator^(const uint_3& _Lhs, const uint_3& _Rhs) __GPU
{
uint_3 _Value1 = _Lhs;
uint_3 _Value2 = _Rhs;
return uint_3(_Value1.x ^ _Value2.x, _Value1.y ^ _Value2.y, _Value1.z ^ _Value2.z);
}
inline uint_3 operator|(const uint_3& _Lhs, const uint_3& _Rhs) __GPU
{
uint_3 _Value1 = _Lhs;
uint_3 _Value2 = _Rhs;
return uint_3(_Value1.x | _Value2.x, _Value1.y | _Value2.y, _Value1.z | _Value2.z);
}
inline uint_3 operator&(const uint_3& _Lhs, const uint_3& _Rhs) __GPU
{
uint_3 _Value1 = _Lhs;
uint_3 _Value2 = _Rhs;
return uint_3(_Value1.x & _Value2.x, _Value1.y & _Value2.y, _Value1.z & _Value2.z);
}
inline uint_3 operator<<(const uint_3& _Lhs, const uint_3& _Rhs) __GPU
{
uint_3 _Value1 = _Lhs;
uint_3 _Value2 = _Rhs;
return uint_3(_Value1.x << _Value2.x, _Value1.y << _Value2.y, _Value1.z << _Value2.z);
}
inline uint_3 operator>>(const uint_3& _Lhs, const uint_3& _Rhs) __GPU
{
uint_3 _Value1 = _Lhs;
uint_3 _Value2 = _Rhs;
return uint_3(_Value1.x >> _Value2.x, _Value1.y >> _Value2.y, _Value1.z >> _Value2.z);
}
inline uint_4 operator+(const uint_4& _Lhs, const uint_4& _Rhs) __GPU
{
uint_4 _Value1 = _Lhs;
uint_4 _Value2 = _Rhs;
return uint_4(_Value1.x + _Value2.x, _Value1.y + _Value2.y, _Value1.z + _Value2.z, _Value1.w + _Value2.w);
}
inline uint_4 operator-(const uint_4& _Lhs, const uint_4& _Rhs) __GPU
{
uint_4 _Value1 = _Lhs;
uint_4 _Value2 = _Rhs;
return uint_4(_Value1.x - _Value2.x, _Value1.y - _Value2.y, _Value1.z - _Value2.z, _Value1.w - _Value2.w);
}
inline uint_4 operator*(const uint_4& _Lhs, const uint_4& _Rhs) __GPU
{
uint_4 _Value1 = _Lhs;
uint_4 _Value2 = _Rhs;
return uint_4(_Value1.x * _Value2.x, _Value1.y * _Value2.y, _Value1.z * _Value2.z, _Value1.w * _Value2.w);
}
inline uint_4 operator/(const uint_4& _Lhs, const uint_4& _Rhs) __GPU
{
uint_4 _Value1 = _Lhs;
uint_4 _Value2 = _Rhs;
return uint_4(_Value1.x / _Value2.x, _Value1.y / _Value2.y, _Value1.z / _Value2.z, _Value1.w / _Value2.w);
}
inline bool operator==(const uint_4& _Lhs, const uint_4& _Rhs) __GPU
{
uint_4 _Value1 = _Lhs;
uint_4 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y && _Value1.z == _Value2.z && _Value1.w == _Value2.w;
}
inline bool operator!=(const uint_4& _Lhs, const uint_4& _Rhs) __GPU
{
uint_4 _Value1 = _Lhs;
uint_4 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y || _Value1.z != _Value2.z || _Value1.w != _Value2.w;
}
inline uint_4 operator%(const uint_4& _Lhs, const uint_4& _Rhs) __GPU
{
uint_4 _Value1 = _Lhs;
uint_4 _Value2 = _Rhs;
return uint_4(_Value1.x % _Value2.x, _Value1.y % _Value2.y, _Value1.z % _Value2.z, _Value1.w % _Value2.w);
}
inline uint_4 operator^(const uint_4& _Lhs, const uint_4& _Rhs) __GPU
{
uint_4 _Value1 = _Lhs;
uint_4 _Value2 = _Rhs;
return uint_4(_Value1.x ^ _Value2.x, _Value1.y ^ _Value2.y, _Value1.z ^ _Value2.z, _Value1.w ^ _Value2.w);
}
inline uint_4 operator|(const uint_4& _Lhs, const uint_4& _Rhs) __GPU
{
uint_4 _Value1 = _Lhs;
uint_4 _Value2 = _Rhs;
return uint_4(_Value1.x | _Value2.x, _Value1.y | _Value2.y, _Value1.z | _Value2.z, _Value1.w | _Value2.w);
}
inline uint_4 operator&(const uint_4& _Lhs, const uint_4& _Rhs) __GPU
{
uint_4 _Value1 = _Lhs;
uint_4 _Value2 = _Rhs;
return uint_4(_Value1.x & _Value2.x, _Value1.y & _Value2.y, _Value1.z & _Value2.z, _Value1.w & _Value2.w);
}
inline uint_4 operator<<(const uint_4& _Lhs, const uint_4& _Rhs) __GPU
{
uint_4 _Value1 = _Lhs;
uint_4 _Value2 = _Rhs;
return uint_4(_Value1.x << _Value2.x, _Value1.y << _Value2.y, _Value1.z << _Value2.z, _Value1.w << _Value2.w);
}
inline uint_4 operator>>(const uint_4& _Lhs, const uint_4& _Rhs) __GPU
{
uint_4 _Value1 = _Lhs;
uint_4 _Value2 = _Rhs;
return uint_4(_Value1.x >> _Value2.x, _Value1.y >> _Value2.y, _Value1.z >> _Value2.z, _Value1.w >> _Value2.w);
}
inline int_2 operator+(const int_2& _Lhs, const int_2& _Rhs) __GPU
{
int_2 _Value1 = _Lhs;
int_2 _Value2 = _Rhs;
return int_2(_Value1.x + _Value2.x, _Value1.y + _Value2.y);
}
inline int_2 operator-(const int_2& _Lhs, const int_2& _Rhs) __GPU
{
int_2 _Value1 = _Lhs;
int_2 _Value2 = _Rhs;
return int_2(_Value1.x - _Value2.x, _Value1.y - _Value2.y);
}
inline int_2 operator*(const int_2& _Lhs, const int_2& _Rhs) __GPU
{
int_2 _Value1 = _Lhs;
int_2 _Value2 = _Rhs;
return int_2(_Value1.x * _Value2.x, _Value1.y * _Value2.y);
}
inline int_2 operator/(const int_2& _Lhs, const int_2& _Rhs) __GPU
{
int_2 _Value1 = _Lhs;
int_2 _Value2 = _Rhs;
return int_2(_Value1.x / _Value2.x, _Value1.y / _Value2.y);
}
inline bool operator==(const int_2& _Lhs, const int_2& _Rhs) __GPU
{
int_2 _Value1 = _Lhs;
int_2 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y;
}
inline bool operator!=(const int_2& _Lhs, const int_2& _Rhs) __GPU
{
int_2 _Value1 = _Lhs;
int_2 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y;
}
inline int_2 operator%(const int_2& _Lhs, const int_2& _Rhs) __GPU
{
int_2 _Value1 = _Lhs;
int_2 _Value2 = _Rhs;
return int_2(_Value1.x % _Value2.x, _Value1.y % _Value2.y);
}
inline int_2 operator^(const int_2& _Lhs, const int_2& _Rhs) __GPU
{
int_2 _Value1 = _Lhs;
int_2 _Value2 = _Rhs;
return int_2(_Value1.x ^ _Value2.x, _Value1.y ^ _Value2.y);
}
inline int_2 operator|(const int_2& _Lhs, const int_2& _Rhs) __GPU
{
int_2 _Value1 = _Lhs;
int_2 _Value2 = _Rhs;
return int_2(_Value1.x | _Value2.x, _Value1.y | _Value2.y);
}
inline int_2 operator&(const int_2& _Lhs, const int_2& _Rhs) __GPU
{
int_2 _Value1 = _Lhs;
int_2 _Value2 = _Rhs;
return int_2(_Value1.x & _Value2.x, _Value1.y & _Value2.y);
}
inline int_2 operator<<(const int_2& _Lhs, const int_2& _Rhs) __GPU
{
int_2 _Value1 = _Lhs;
int_2 _Value2 = _Rhs;
return int_2(_Value1.x << _Value2.x, _Value1.y << _Value2.y);
}
inline int_2 operator>>(const int_2& _Lhs, const int_2& _Rhs) __GPU
{
int_2 _Value1 = _Lhs;
int_2 _Value2 = _Rhs;
return int_2(_Value1.x >> _Value2.x, _Value1.y >> _Value2.y);
}
inline int_3 operator+(const int_3& _Lhs, const int_3& _Rhs) __GPU
{
int_3 _Value1 = _Lhs;
int_3 _Value2 = _Rhs;
return int_3(_Value1.x + _Value2.x, _Value1.y + _Value2.y, _Value1.z + _Value2.z);
}
inline int_3 operator-(const int_3& _Lhs, const int_3& _Rhs) __GPU
{
int_3 _Value1 = _Lhs;
int_3 _Value2 = _Rhs;
return int_3(_Value1.x - _Value2.x, _Value1.y - _Value2.y, _Value1.z - _Value2.z);
}
inline int_3 operator*(const int_3& _Lhs, const int_3& _Rhs) __GPU
{
int_3 _Value1 = _Lhs;
int_3 _Value2 = _Rhs;
return int_3(_Value1.x * _Value2.x, _Value1.y * _Value2.y, _Value1.z * _Value2.z);
}
inline int_3 operator/(const int_3& _Lhs, const int_3& _Rhs) __GPU
{
int_3 _Value1 = _Lhs;
int_3 _Value2 = _Rhs;
return int_3(_Value1.x / _Value2.x, _Value1.y / _Value2.y, _Value1.z / _Value2.z);
}
inline bool operator==(const int_3& _Lhs, const int_3& _Rhs) __GPU
{
int_3 _Value1 = _Lhs;
int_3 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y && _Value1.z == _Value2.z;
}
inline bool operator!=(const int_3& _Lhs, const int_3& _Rhs) __GPU
{
int_3 _Value1 = _Lhs;
int_3 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y || _Value1.z != _Value2.z;
}
inline int_3 operator%(const int_3& _Lhs, const int_3& _Rhs) __GPU
{
int_3 _Value1 = _Lhs;
int_3 _Value2 = _Rhs;
return int_3(_Value1.x % _Value2.x, _Value1.y % _Value2.y, _Value1.z % _Value2.z);
}
inline int_3 operator^(const int_3& _Lhs, const int_3& _Rhs) __GPU
{
int_3 _Value1 = _Lhs;
int_3 _Value2 = _Rhs;
return int_3(_Value1.x ^ _Value2.x, _Value1.y ^ _Value2.y, _Value1.z ^ _Value2.z);
}
inline int_3 operator|(const int_3& _Lhs, const int_3& _Rhs) __GPU
{
int_3 _Value1 = _Lhs;
int_3 _Value2 = _Rhs;
return int_3(_Value1.x | _Value2.x, _Value1.y | _Value2.y, _Value1.z | _Value2.z);
}
inline int_3 operator&(const int_3& _Lhs, const int_3& _Rhs) __GPU
{
int_3 _Value1 = _Lhs;
int_3 _Value2 = _Rhs;
return int_3(_Value1.x & _Value2.x, _Value1.y & _Value2.y, _Value1.z & _Value2.z);
}
inline int_3 operator<<(const int_3& _Lhs, const int_3& _Rhs) __GPU
{
int_3 _Value1 = _Lhs;
int_3 _Value2 = _Rhs;
return int_3(_Value1.x << _Value2.x, _Value1.y << _Value2.y, _Value1.z << _Value2.z);
}
inline int_3 operator>>(const int_3& _Lhs, const int_3& _Rhs) __GPU
{
int_3 _Value1 = _Lhs;
int_3 _Value2 = _Rhs;
return int_3(_Value1.x >> _Value2.x, _Value1.y >> _Value2.y, _Value1.z >> _Value2.z);
}
inline int_4 operator+(const int_4& _Lhs, const int_4& _Rhs) __GPU
{
int_4 _Value1 = _Lhs;
int_4 _Value2 = _Rhs;
return int_4(_Value1.x + _Value2.x, _Value1.y + _Value2.y, _Value1.z + _Value2.z, _Value1.w + _Value2.w);
}
inline int_4 operator-(const int_4& _Lhs, const int_4& _Rhs) __GPU
{
int_4 _Value1 = _Lhs;
int_4 _Value2 = _Rhs;
return int_4(_Value1.x - _Value2.x, _Value1.y - _Value2.y, _Value1.z - _Value2.z, _Value1.w - _Value2.w);
}
inline int_4 operator*(const int_4& _Lhs, const int_4& _Rhs) __GPU
{
int_4 _Value1 = _Lhs;
int_4 _Value2 = _Rhs;
return int_4(_Value1.x * _Value2.x, _Value1.y * _Value2.y, _Value1.z * _Value2.z, _Value1.w * _Value2.w);
}
inline int_4 operator/(const int_4& _Lhs, const int_4& _Rhs) __GPU
{
int_4 _Value1 = _Lhs;
int_4 _Value2 = _Rhs;
return int_4(_Value1.x / _Value2.x, _Value1.y / _Value2.y, _Value1.z / _Value2.z, _Value1.w / _Value2.w);
}
inline bool operator==(const int_4& _Lhs, const int_4& _Rhs) __GPU
{
int_4 _Value1 = _Lhs;
int_4 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y && _Value1.z == _Value2.z && _Value1.w == _Value2.w;
}
inline bool operator!=(const int_4& _Lhs, const int_4& _Rhs) __GPU
{
int_4 _Value1 = _Lhs;
int_4 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y || _Value1.z != _Value2.z || _Value1.w != _Value2.w;
}
inline int_4 operator%(const int_4& _Lhs, const int_4& _Rhs) __GPU
{
int_4 _Value1 = _Lhs;
int_4 _Value2 = _Rhs;
return int_4(_Value1.x % _Value2.x, _Value1.y % _Value2.y, _Value1.z % _Value2.z, _Value1.w % _Value2.w);
}
inline int_4 operator^(const int_4& _Lhs, const int_4& _Rhs) __GPU
{
int_4 _Value1 = _Lhs;
int_4 _Value2 = _Rhs;
return int_4(_Value1.x ^ _Value2.x, _Value1.y ^ _Value2.y, _Value1.z ^ _Value2.z, _Value1.w ^ _Value2.w);
}
inline int_4 operator|(const int_4& _Lhs, const int_4& _Rhs) __GPU
{
int_4 _Value1 = _Lhs;
int_4 _Value2 = _Rhs;
return int_4(_Value1.x | _Value2.x, _Value1.y | _Value2.y, _Value1.z | _Value2.z, _Value1.w | _Value2.w);
}
inline int_4 operator&(const int_4& _Lhs, const int_4& _Rhs) __GPU
{
int_4 _Value1 = _Lhs;
int_4 _Value2 = _Rhs;
return int_4(_Value1.x & _Value2.x, _Value1.y & _Value2.y, _Value1.z & _Value2.z, _Value1.w & _Value2.w);
}
inline int_4 operator<<(const int_4& _Lhs, const int_4& _Rhs) __GPU
{
int_4 _Value1 = _Lhs;
int_4 _Value2 = _Rhs;
return int_4(_Value1.x << _Value2.x, _Value1.y << _Value2.y, _Value1.z << _Value2.z, _Value1.w << _Value2.w);
}
inline int_4 operator>>(const int_4& _Lhs, const int_4& _Rhs) __GPU
{
int_4 _Value1 = _Lhs;
int_4 _Value2 = _Rhs;
return int_4(_Value1.x >> _Value2.x, _Value1.y >> _Value2.y, _Value1.z >> _Value2.z, _Value1.w >> _Value2.w);
}
inline float_2 operator+(const float_2& _Lhs, const float_2& _Rhs) __GPU
{
float_2 _Value1 = _Lhs;
float_2 _Value2 = _Rhs;
return float_2(_Value1.x + _Value2.x, _Value1.y + _Value2.y);
}
inline float_2 operator-(const float_2& _Lhs, const float_2& _Rhs) __GPU
{
float_2 _Value1 = _Lhs;
float_2 _Value2 = _Rhs;
return float_2(_Value1.x - _Value2.x, _Value1.y - _Value2.y);
}
inline float_2 operator*(const float_2& _Lhs, const float_2& _Rhs) __GPU
{
float_2 _Value1 = _Lhs;
float_2 _Value2 = _Rhs;
return float_2(_Value1.x * _Value2.x, _Value1.y * _Value2.y);
}
inline float_2 operator/(const float_2& _Lhs, const float_2& _Rhs) __GPU
{
float_2 _Value1 = _Lhs;
float_2 _Value2 = _Rhs;
return float_2(_Value1.x / _Value2.x, _Value1.y / _Value2.y);
}
inline bool operator==(const float_2& _Lhs, const float_2& _Rhs) __GPU
{
float_2 _Value1 = _Lhs;
float_2 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y;
}
inline bool operator!=(const float_2& _Lhs, const float_2& _Rhs) __GPU
{
float_2 _Value1 = _Lhs;
float_2 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y;
}
inline float_3 operator+(const float_3& _Lhs, const float_3& _Rhs) __GPU
{
float_3 _Value1 = _Lhs;
float_3 _Value2 = _Rhs;
return float_3(_Value1.x + _Value2.x, _Value1.y + _Value2.y, _Value1.z + _Value2.z);
}
inline float_3 operator-(const float_3& _Lhs, const float_3& _Rhs) __GPU
{
float_3 _Value1 = _Lhs;
float_3 _Value2 = _Rhs;
return float_3(_Value1.x - _Value2.x, _Value1.y - _Value2.y, _Value1.z - _Value2.z);
}
inline float_3 operator*(const float_3& _Lhs, const float_3& _Rhs) __GPU
{
float_3 _Value1 = _Lhs;
float_3 _Value2 = _Rhs;
return float_3(_Value1.x * _Value2.x, _Value1.y * _Value2.y, _Value1.z * _Value2.z);
}
inline float_3 operator/(const float_3& _Lhs, const float_3& _Rhs) __GPU
{
float_3 _Value1 = _Lhs;
float_3 _Value2 = _Rhs;
return float_3(_Value1.x / _Value2.x, _Value1.y / _Value2.y, _Value1.z / _Value2.z);
}
inline bool operator==(const float_3& _Lhs, const float_3& _Rhs) __GPU
{
float_3 _Value1 = _Lhs;
float_3 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y && _Value1.z == _Value2.z;
}
inline bool operator!=(const float_3& _Lhs, const float_3& _Rhs) __GPU
{
float_3 _Value1 = _Lhs;
float_3 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y || _Value1.z != _Value2.z;
}
inline float_4 operator+(const float_4& _Lhs, const float_4& _Rhs) __GPU
{
float_4 _Value1 = _Lhs;
float_4 _Value2 = _Rhs;
return float_4(_Value1.x + _Value2.x, _Value1.y + _Value2.y, _Value1.z + _Value2.z, _Value1.w + _Value2.w);
}
inline float_4 operator-(const float_4& _Lhs, const float_4& _Rhs) __GPU
{
float_4 _Value1 = _Lhs;
float_4 _Value2 = _Rhs;
return float_4(_Value1.x - _Value2.x, _Value1.y - _Value2.y, _Value1.z - _Value2.z, _Value1.w - _Value2.w);
}
inline float_4 operator*(const float_4& _Lhs, const float_4& _Rhs) __GPU
{
float_4 _Value1 = _Lhs;
float_4 _Value2 = _Rhs;
return float_4(_Value1.x * _Value2.x, _Value1.y * _Value2.y, _Value1.z * _Value2.z, _Value1.w * _Value2.w);
}
inline float_4 operator/(const float_4& _Lhs, const float_4& _Rhs) __GPU
{
float_4 _Value1 = _Lhs;
float_4 _Value2 = _Rhs;
return float_4(_Value1.x / _Value2.x, _Value1.y / _Value2.y, _Value1.z / _Value2.z, _Value1.w / _Value2.w);
}
inline bool operator==(const float_4& _Lhs, const float_4& _Rhs) __GPU
{
float_4 _Value1 = _Lhs;
float_4 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y && _Value1.z == _Value2.z && _Value1.w == _Value2.w;
}
inline bool operator!=(const float_4& _Lhs, const float_4& _Rhs) __GPU
{
float_4 _Value1 = _Lhs;
float_4 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y || _Value1.z != _Value2.z || _Value1.w != _Value2.w;
}
inline unorm_2 operator+(const unorm_2& _Lhs, const unorm_2& _Rhs) __GPU
{
unorm_2 _Value1 = _Lhs;
unorm_2 _Value2 = _Rhs;
return unorm_2(_Value1.x + _Value2.x, _Value1.y + _Value2.y);
}
inline unorm_2 operator-(const unorm_2& _Lhs, const unorm_2& _Rhs) __GPU
{
unorm_2 _Value1 = _Lhs;
unorm_2 _Value2 = _Rhs;
return unorm_2(_Value1.x - _Value2.x, _Value1.y - _Value2.y);
}
inline unorm_2 operator*(const unorm_2& _Lhs, const unorm_2& _Rhs) __GPU
{
unorm_2 _Value1 = _Lhs;
unorm_2 _Value2 = _Rhs;
return unorm_2(_Value1.x * _Value2.x, _Value1.y * _Value2.y);
}
inline unorm_2 operator/(const unorm_2& _Lhs, const unorm_2& _Rhs) __GPU
{
unorm_2 _Value1 = _Lhs;
unorm_2 _Value2 = _Rhs;
return unorm_2(_Value1.x / _Value2.x, _Value1.y / _Value2.y);
}
inline bool operator==(const unorm_2& _Lhs, const unorm_2& _Rhs) __GPU
{
unorm_2 _Value1 = _Lhs;
unorm_2 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y;
}
inline bool operator!=(const unorm_2& _Lhs, const unorm_2& _Rhs) __GPU
{
unorm_2 _Value1 = _Lhs;
unorm_2 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y;
}
inline unorm_3 operator+(const unorm_3& _Lhs, const unorm_3& _Rhs) __GPU
{
unorm_3 _Value1 = _Lhs;
unorm_3 _Value2 = _Rhs;
return unorm_3(_Value1.x + _Value2.x, _Value1.y + _Value2.y, _Value1.z + _Value2.z);
}
inline unorm_3 operator-(const unorm_3& _Lhs, const unorm_3& _Rhs) __GPU
{
unorm_3 _Value1 = _Lhs;
unorm_3 _Value2 = _Rhs;
return unorm_3(_Value1.x - _Value2.x, _Value1.y - _Value2.y, _Value1.z - _Value2.z);
}
inline unorm_3 operator*(const unorm_3& _Lhs, const unorm_3& _Rhs) __GPU
{
unorm_3 _Value1 = _Lhs;
unorm_3 _Value2 = _Rhs;
return unorm_3(_Value1.x * _Value2.x, _Value1.y * _Value2.y, _Value1.z * _Value2.z);
}
inline unorm_3 operator/(const unorm_3& _Lhs, const unorm_3& _Rhs) __GPU
{
unorm_3 _Value1 = _Lhs;
unorm_3 _Value2 = _Rhs;
return unorm_3(_Value1.x / _Value2.x, _Value1.y / _Value2.y, _Value1.z / _Value2.z);
}
inline bool operator==(const unorm_3& _Lhs, const unorm_3& _Rhs) __GPU
{
unorm_3 _Value1 = _Lhs;
unorm_3 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y && _Value1.z == _Value2.z;
}
inline bool operator!=(const unorm_3& _Lhs, const unorm_3& _Rhs) __GPU
{
unorm_3 _Value1 = _Lhs;
unorm_3 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y || _Value1.z != _Value2.z;
}
inline unorm_4 operator+(const unorm_4& _Lhs, const unorm_4& _Rhs) __GPU
{
unorm_4 _Value1 = _Lhs;
unorm_4 _Value2 = _Rhs;
return unorm_4(_Value1.x + _Value2.x, _Value1.y + _Value2.y, _Value1.z + _Value2.z, _Value1.w + _Value2.w);
}
inline unorm_4 operator-(const unorm_4& _Lhs, const unorm_4& _Rhs) __GPU
{
unorm_4 _Value1 = _Lhs;
unorm_4 _Value2 = _Rhs;
return unorm_4(_Value1.x - _Value2.x, _Value1.y - _Value2.y, _Value1.z - _Value2.z, _Value1.w - _Value2.w);
}
inline unorm_4 operator*(const unorm_4& _Lhs, const unorm_4& _Rhs) __GPU
{
unorm_4 _Value1 = _Lhs;
unorm_4 _Value2 = _Rhs;
return unorm_4(_Value1.x * _Value2.x, _Value1.y * _Value2.y, _Value1.z * _Value2.z, _Value1.w * _Value2.w);
}
inline unorm_4 operator/(const unorm_4& _Lhs, const unorm_4& _Rhs) __GPU
{
unorm_4 _Value1 = _Lhs;
unorm_4 _Value2 = _Rhs;
return unorm_4(_Value1.x / _Value2.x, _Value1.y / _Value2.y, _Value1.z / _Value2.z, _Value1.w / _Value2.w);
}
inline bool operator==(const unorm_4& _Lhs, const unorm_4& _Rhs) __GPU
{
unorm_4 _Value1 = _Lhs;
unorm_4 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y && _Value1.z == _Value2.z && _Value1.w == _Value2.w;
}
inline bool operator!=(const unorm_4& _Lhs, const unorm_4& _Rhs) __GPU
{
unorm_4 _Value1 = _Lhs;
unorm_4 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y || _Value1.z != _Value2.z || _Value1.w != _Value2.w;
}
inline norm_2 operator+(const norm_2& _Lhs, const norm_2& _Rhs) __GPU
{
norm_2 _Value1 = _Lhs;
norm_2 _Value2 = _Rhs;
return norm_2(_Value1.x + _Value2.x, _Value1.y + _Value2.y);
}
inline norm_2 operator-(const norm_2& _Lhs, const norm_2& _Rhs) __GPU
{
norm_2 _Value1 = _Lhs;
norm_2 _Value2 = _Rhs;
return norm_2(_Value1.x - _Value2.x, _Value1.y - _Value2.y);
}
inline norm_2 operator*(const norm_2& _Lhs, const norm_2& _Rhs) __GPU
{
norm_2 _Value1 = _Lhs;
norm_2 _Value2 = _Rhs;
return norm_2(_Value1.x * _Value2.x, _Value1.y * _Value2.y);
}
inline norm_2 operator/(const norm_2& _Lhs, const norm_2& _Rhs) __GPU
{
norm_2 _Value1 = _Lhs;
norm_2 _Value2 = _Rhs;
return norm_2(_Value1.x / _Value2.x, _Value1.y / _Value2.y);
}
inline bool operator==(const norm_2& _Lhs, const norm_2& _Rhs) __GPU
{
norm_2 _Value1 = _Lhs;
norm_2 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y;
}
inline bool operator!=(const norm_2& _Lhs, const norm_2& _Rhs) __GPU
{
norm_2 _Value1 = _Lhs;
norm_2 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y;
}
inline norm_3 operator+(const norm_3& _Lhs, const norm_3& _Rhs) __GPU
{
norm_3 _Value1 = _Lhs;
norm_3 _Value2 = _Rhs;
return norm_3(_Value1.x + _Value2.x, _Value1.y + _Value2.y, _Value1.z + _Value2.z);
}
inline norm_3 operator-(const norm_3& _Lhs, const norm_3& _Rhs) __GPU
{
norm_3 _Value1 = _Lhs;
norm_3 _Value2 = _Rhs;
return norm_3(_Value1.x - _Value2.x, _Value1.y - _Value2.y, _Value1.z - _Value2.z);
}
inline norm_3 operator*(const norm_3& _Lhs, const norm_3& _Rhs) __GPU
{
norm_3 _Value1 = _Lhs;
norm_3 _Value2 = _Rhs;
return norm_3(_Value1.x * _Value2.x, _Value1.y * _Value2.y, _Value1.z * _Value2.z);
}
inline norm_3 operator/(const norm_3& _Lhs, const norm_3& _Rhs) __GPU
{
norm_3 _Value1 = _Lhs;
norm_3 _Value2 = _Rhs;
return norm_3(_Value1.x / _Value2.x, _Value1.y / _Value2.y, _Value1.z / _Value2.z);
}
inline bool operator==(const norm_3& _Lhs, const norm_3& _Rhs) __GPU
{
norm_3 _Value1 = _Lhs;
norm_3 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y && _Value1.z == _Value2.z;
}
inline bool operator!=(const norm_3& _Lhs, const norm_3& _Rhs) __GPU
{
norm_3 _Value1 = _Lhs;
norm_3 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y || _Value1.z != _Value2.z;
}
inline norm_4 operator+(const norm_4& _Lhs, const norm_4& _Rhs) __GPU
{
norm_4 _Value1 = _Lhs;
norm_4 _Value2 = _Rhs;
return norm_4(_Value1.x + _Value2.x, _Value1.y + _Value2.y, _Value1.z + _Value2.z, _Value1.w + _Value2.w);
}
inline norm_4 operator-(const norm_4& _Lhs, const norm_4& _Rhs) __GPU
{
norm_4 _Value1 = _Lhs;
norm_4 _Value2 = _Rhs;
return norm_4(_Value1.x - _Value2.x, _Value1.y - _Value2.y, _Value1.z - _Value2.z, _Value1.w - _Value2.w);
}
inline norm_4 operator*(const norm_4& _Lhs, const norm_4& _Rhs) __GPU
{
norm_4 _Value1 = _Lhs;
norm_4 _Value2 = _Rhs;
return norm_4(_Value1.x * _Value2.x, _Value1.y * _Value2.y, _Value1.z * _Value2.z, _Value1.w * _Value2.w);
}
inline norm_4 operator/(const norm_4& _Lhs, const norm_4& _Rhs) __GPU
{
norm_4 _Value1 = _Lhs;
norm_4 _Value2 = _Rhs;
return norm_4(_Value1.x / _Value2.x, _Value1.y / _Value2.y, _Value1.z / _Value2.z, _Value1.w / _Value2.w);
}
inline bool operator==(const norm_4& _Lhs, const norm_4& _Rhs) __GPU
{
norm_4 _Value1 = _Lhs;
norm_4 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y && _Value1.z == _Value2.z && _Value1.w == _Value2.w;
}
inline bool operator!=(const norm_4& _Lhs, const norm_4& _Rhs) __GPU
{
norm_4 _Value1 = _Lhs;
norm_4 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y || _Value1.z != _Value2.z || _Value1.w != _Value2.w;
}
inline double_2 operator+(const double_2& _Lhs, const double_2& _Rhs) __GPU
{
double_2 _Value1 = _Lhs;
double_2 _Value2 = _Rhs;
return double_2(_Value1.x + _Value2.x, _Value1.y + _Value2.y);
}
inline double_2 operator-(const double_2& _Lhs, const double_2& _Rhs) __GPU
{
double_2 _Value1 = _Lhs;
double_2 _Value2 = _Rhs;
return double_2(_Value1.x - _Value2.x, _Value1.y - _Value2.y);
}
inline double_2 operator*(const double_2& _Lhs, const double_2& _Rhs) __GPU
{
double_2 _Value1 = _Lhs;
double_2 _Value2 = _Rhs;
return double_2(_Value1.x * _Value2.x, _Value1.y * _Value2.y);
}
inline double_2 operator/(const double_2& _Lhs, const double_2& _Rhs) __GPU
{
double_2 _Value1 = _Lhs;
double_2 _Value2 = _Rhs;
return double_2(_Value1.x / _Value2.x, _Value1.y / _Value2.y);
}
inline bool operator==(const double_2& _Lhs, const double_2& _Rhs) __GPU
{
double_2 _Value1 = _Lhs;
double_2 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y;
}
inline bool operator!=(const double_2& _Lhs, const double_2& _Rhs) __GPU
{
double_2 _Value1 = _Lhs;
double_2 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y;
}
inline double_3 operator+(const double_3& _Lhs, const double_3& _Rhs) __GPU
{
double_3 _Value1 = _Lhs;
double_3 _Value2 = _Rhs;
return double_3(_Value1.x + _Value2.x, _Value1.y + _Value2.y, _Value1.z + _Value2.z);
}
inline double_3 operator-(const double_3& _Lhs, const double_3& _Rhs) __GPU
{
double_3 _Value1 = _Lhs;
double_3 _Value2 = _Rhs;
return double_3(_Value1.x - _Value2.x, _Value1.y - _Value2.y, _Value1.z - _Value2.z);
}
inline double_3 operator*(const double_3& _Lhs, const double_3& _Rhs) __GPU
{
double_3 _Value1 = _Lhs;
double_3 _Value2 = _Rhs;
return double_3(_Value1.x * _Value2.x, _Value1.y * _Value2.y, _Value1.z * _Value2.z);
}
inline double_3 operator/(const double_3& _Lhs, const double_3& _Rhs) __GPU
{
double_3 _Value1 = _Lhs;
double_3 _Value2 = _Rhs;
return double_3(_Value1.x / _Value2.x, _Value1.y / _Value2.y, _Value1.z / _Value2.z);
}
inline bool operator==(const double_3& _Lhs, const double_3& _Rhs) __GPU
{
double_3 _Value1 = _Lhs;
double_3 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y && _Value1.z == _Value2.z;
}
inline bool operator!=(const double_3& _Lhs, const double_3& _Rhs) __GPU
{
double_3 _Value1 = _Lhs;
double_3 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y || _Value1.z != _Value2.z;
}
inline double_4 operator+(const double_4& _Lhs, const double_4& _Rhs) __GPU
{
double_4 _Value1 = _Lhs;
double_4 _Value2 = _Rhs;
return double_4(_Value1.x + _Value2.x, _Value1.y + _Value2.y, _Value1.z + _Value2.z, _Value1.w + _Value2.w);
}
inline double_4 operator-(const double_4& _Lhs, const double_4& _Rhs) __GPU
{
double_4 _Value1 = _Lhs;
double_4 _Value2 = _Rhs;
return double_4(_Value1.x - _Value2.x, _Value1.y - _Value2.y, _Value1.z - _Value2.z, _Value1.w - _Value2.w);
}
inline double_4 operator*(const double_4& _Lhs, const double_4& _Rhs) __GPU
{
double_4 _Value1 = _Lhs;
double_4 _Value2 = _Rhs;
return double_4(_Value1.x * _Value2.x, _Value1.y * _Value2.y, _Value1.z * _Value2.z, _Value1.w * _Value2.w);
}
inline double_4 operator/(const double_4& _Lhs, const double_4& _Rhs) __GPU
{
double_4 _Value1 = _Lhs;
double_4 _Value2 = _Rhs;
return double_4(_Value1.x / _Value2.x, _Value1.y / _Value2.y, _Value1.z / _Value2.z, _Value1.w / _Value2.w);
}
inline bool operator==(const double_4& _Lhs, const double_4& _Rhs) __GPU
{
double_4 _Value1 = _Lhs;
double_4 _Value2 = _Rhs;
return _Value1.x == _Value2.x && _Value1.y == _Value2.y && _Value1.z == _Value2.z && _Value1.w == _Value2.w;
}
inline bool operator!=(const double_4& _Lhs, const double_4& _Rhs) __GPU
{
double_4 _Value1 = _Lhs;
double_4 _Value2 = _Rhs;
return _Value1.x != _Value2.x || _Value1.y != _Value2.y || _Value1.z != _Value2.z || _Value1.w != _Value2.w;
}
namespace direct3d
{
// typedefs
typedef graphics::uint_2 uint2;
typedef graphics::uint_3 uint3;
typedef graphics::uint_4 uint4;
typedef graphics::int_2 int2;
typedef graphics::int_3 int3;
typedef graphics::int_4 int4;
typedef graphics::float_2 float2;
typedef graphics::float_3 float3;
typedef graphics::float_4 float4;
typedef graphics::unorm_2 unorm2;
typedef graphics::unorm_3 unorm3;
typedef graphics::unorm_4 unorm4;
typedef graphics::norm_2 norm2;
typedef graphics::norm_3 norm3;
typedef graphics::norm_4 norm4;
typedef graphics::double_2 double2;
typedef graphics::double_3 double3;
typedef graphics::double_4 double4;
} // namespace direct3d
/// <summary>
/// short_vector provides metaprogramming definitions which are useful for programming short vectors generically.
/// </summary>
/// <param name="_Scalar_type">
/// The scalar type.
/// </param>
/// <param name="_Size">
/// The size of the short vector.
/// </param>
template<typename _Scalar_type, int _Size> struct short_vector
{
short_vector()
{
static_assert(false, "short_vector is not supported for this scalar type (_T) and length (_N)");
}
};
template<>
struct short_vector<unsigned int, 1>
{
typedef unsigned int type;
};
template<>
struct short_vector<unsigned int, 2>
{
typedef uint_2 type;
};
template<>
struct short_vector<unsigned int, 3>
{
typedef uint_3 type;
};
template<>
struct short_vector<unsigned int, 4>
{
typedef uint_4 type;
};
template<>
struct short_vector<int, 1>
{
typedef int type;
};
template<>
struct short_vector<int, 2>
{
typedef int_2 type;
};
template<>
struct short_vector<int, 3>
{
typedef int_3 type;
};
template<>
struct short_vector<int, 4>
{
typedef int_4 type;
};
template<>
struct short_vector<float, 1>
{
typedef float type;
};
template<>
struct short_vector<float, 2>
{
typedef float_2 type;
};
template<>
struct short_vector<float, 3>
{
typedef float_3 type;
};
template<>
struct short_vector<float, 4>
{
typedef float_4 type;
};
template<>
struct short_vector<unorm, 1>
{
typedef unorm type;
};
template<>
struct short_vector<unorm, 2>
{
typedef unorm_2 type;
};
template<>
struct short_vector<unorm, 3>
{
typedef unorm_3 type;
};
template<>
struct short_vector<unorm, 4>
{
typedef unorm_4 type;
};
template<>
struct short_vector<norm, 1>
{
typedef norm type;
};
template<>
struct short_vector<norm, 2>
{
typedef norm_2 type;
};
template<>
struct short_vector<norm, 3>
{
typedef norm_3 type;
};
template<>
struct short_vector<norm, 4>
{
typedef norm_4 type;
};
template<>
struct short_vector<double, 1>
{
typedef double type;
};
template<>
struct short_vector<double, 2>
{
typedef double_2 type;
};
template<>
struct short_vector<double, 3>
{
typedef double_3 type;
};
template<>
struct short_vector<double, 4>
{
typedef double_4 type;
};
/// <summary>
/// short_vector_traits allows retrival of the underlying vector length and scalar type of a short vector type or a scalar type
/// </summary>
/// <param name="_Type">
/// The short vector type or a scalar type.
/// </param>
template<typename _Type> struct short_vector_traits
{
short_vector_traits()
{
static_assert(false, "short_vector_traits is not supported for this type (_Type)");
}
};
template<>
struct short_vector_traits<unsigned int>
{
typedef unsigned int value_type;
static int const size = 1;
};
template<>
struct short_vector_traits<uint_2>
{
typedef unsigned int value_type;
static int const size = 2;
};
template<>
struct short_vector_traits<uint_3>
{
typedef unsigned int value_type;
static int const size = 3;
};
template<>
struct short_vector_traits<uint_4>
{
typedef unsigned int value_type;
static int const size = 4;
};
template<>
struct short_vector_traits<int>
{
typedef int value_type;
static int const size = 1;
};
template<>
struct short_vector_traits<int_2>
{
typedef int value_type;
static int const size = 2;
};
template<>
struct short_vector_traits<int_3>
{
typedef int value_type;
static int const size = 3;
};
template<>
struct short_vector_traits<int_4>
{
typedef int value_type;
static int const size = 4;
};
template<>
struct short_vector_traits<float>
{
typedef float value_type;
static int const size = 1;
};
template<>
struct short_vector_traits<float_2>
{
typedef float value_type;
static int const size = 2;
};
template<>
struct short_vector_traits<float_3>
{
typedef float value_type;
static int const size = 3;
};
template<>
struct short_vector_traits<float_4>
{
typedef float value_type;
static int const size = 4;
};
template<>
struct short_vector_traits<unorm>
{
typedef unorm value_type;
static int const size = 1;
};
template<>
struct short_vector_traits<unorm_2>
{
typedef unorm value_type;
static int const size = 2;
};
template<>
struct short_vector_traits<unorm_3>
{
typedef unorm value_type;
static int const size = 3;
};
template<>
struct short_vector_traits<unorm_4>
{
typedef unorm value_type;
static int const size = 4;
};
template<>
struct short_vector_traits<norm>
{
typedef norm value_type;
static int const size = 1;
};
template<>
struct short_vector_traits<norm_2>
{
typedef norm value_type;
static int const size = 2;
};
template<>
struct short_vector_traits<norm_3>
{
typedef norm value_type;
static int const size = 3;
};
template<>
struct short_vector_traits<norm_4>
{
typedef norm value_type;
static int const size = 4;
};
template<>
struct short_vector_traits<double>
{
typedef double value_type;
static int const size = 1;
};
template<>
struct short_vector_traits<double_2>
{
typedef double value_type;
static int const size = 2;
};
template<>
struct short_vector_traits<double_3>
{
typedef double value_type;
static int const size = 3;
};
template<>
struct short_vector_traits<double_4>
{
typedef double value_type;
static int const size = 4;
};
} // namespace graphics
} // namespace Concurrency
#pragma warning(pop)
// End of generated file