Mundy: Multibody Nonlocal Dynamics Version of the Day
Loading...
Searching...
No Matches
mundy::ValidMatrix3Type Concept Reference

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.

#include <Matrix3.hpp>

Concept definition

template<typename Matrix3Type>
concept ValidMatrix3Type = is_matrix3_v<std::decay_t<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