A temporary concept to check if a type is a valid Matrix3 type TODO(palmerb4): Extend this concept to contain all shared setters and getters for our quaternions.
template<typename Matrix3Type>
requires(std::decay_t<Matrix3Type>
matrix3,
const std::decay_t<Matrix3Type> const_matrix3) {
typename std::decay_t<Matrix3Type>::value_type;
{
matrix3[0] } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3[1] } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3[2] } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3[3] } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3[4] } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3[5] } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3[6] } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3[7] } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3[8] } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(0) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(1) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(2) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(3) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(4) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(5) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(6) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(7) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(8) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(0, 0) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(0, 1) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(0, 2) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(1, 0) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(1, 1) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(1, 2) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(2, 0) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(2, 1) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
matrix3(2, 2) } -> std::convertible_to<typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3[0]
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3[1]
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3[2]
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3[3]
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3[4]
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3[5]
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3[6]
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3[7]
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3[8]
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(0)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(1)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(2)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(3)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(4)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(5)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(6)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(7)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(8)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(0, 0)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(0, 1)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(0, 2)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(1, 0)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(1, 1)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(1, 2)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(2, 0)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(2, 1)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
{
const_matrix3(2, 2)
} -> std::convertible_to<const typename std::decay_t<Matrix3Type>::value_type>;
}
A temporary concept to check if a type is a valid Matrix3 type TODO(palmerb4): Extend this concept to...
Definition Matrix3.hpp:83
matrix3
Definition Matrix.hpp:1349