81                w * rhs.x + 
x * rhs.w + 
y * rhs.z - 
z * rhs.y,
 
   82                w * rhs.y - 
x * rhs.z + 
y * rhs.w + 
z * rhs.x,
 
   83                w * rhs.z + 
x * rhs.y - 
y * rhs.x + 
z * rhs.w,
 
   84                w * rhs.w - 
x * rhs.x - 
y * rhs.y - 
z * rhs.z,
 
 
  105            return !(*
this == rhs);
 
 
  110        explicit constexpr operator bool() const noexcept
 
  112            return x || 
y || 
z || 
w;
 
 
  119            return { -
x, -
y, -
z, 
w };
 
 
  128                x * (direction.x ? 1 : -1),
 
  129                y * (direction.y ? 1 : -1),
 
  130                z * (direction.z ? 1 : -1),
 
 
  139            return { 0, 0, 0, 1 };
 
 
  147            return { sin(angle / 2), 0, 0, cos(angle / 2) };
 
 
  155            return { 0, sin(angle / 2), 0, cos(angle / 2) };
 
 
  163            return { 0, 0, sin(angle / 2), cos(angle / 2) };
 
 
  169            return !
operator bool();
 
 
  185            return atan2(2 * (
w * 
z + 
x * 
y), 1 - 2 * (
y * 
y + 
z * 
z));
 
 
  191            return asin(2 * (
w * 
y - 
z * 
x));
 
 
  197            return atan2(2 * (
w * 
x + 
y * 
z), 1 - 2 * (
x * 
x + 
y * 
y));
 
 
  213        operator s3d::Quaternion() const noexcept
 
  215            return s3d::Quaternion(
x, 
y, 
z, 
w);
 
  223            Serial.print(
F(
"x: ")), Serial.print(
x), Serial.print(
'\t');
 
  224            Serial.print(
F(
"y: ")), Serial.print(
y), Serial.print(
'\t');
 
  225            Serial.print(
F(
"z: ")), Serial.print(
z), Serial.print(
'\t');
 
  226            Serial.print(
F(
"w: ")), Serial.print(
w), Serial.print(
'\t');
 
 
#define UDON_ENUMERABLE(...)
メンバ変数の列挙を可能にする
Definition EnumerableMacro.hpp:11
 
#define F(x)
Definition Show.hpp:17
 
オイラー角
Definition Euler.hpp:31
 
クオータニオンの各成分の正負を表す構造体
Definition Quaternion.hpp:21
 
bool x
Definition Quaternion.hpp:22
 
bool y
Definition Quaternion.hpp:23
 
bool z
Definition Quaternion.hpp:24
 
constexpr Quaternion inverse() const noexcept
逆クオータニオン
Definition Quaternion.hpp:117
 
constexpr Quaternion() noexcept
デフォルトコンストラクタ
Definition Quaternion.hpp:48
 
static Quaternion RotateY(ValueType angle) noexcept
Y軸回転クオータニオン
Definition Quaternion.hpp:153
 
constexpr Quaternion directionRevision(const QuaternionDirection &direction) const noexcept
回転方向を修正したクオータニオンを取得する
Definition Quaternion.hpp:125
 
ValueType x
x成分
Definition Quaternion.hpp:36
 
constexpr bool operator==(const Quaternion &rhs) const noexcept
比較演算子
Definition Quaternion.hpp:96
 
constexpr Quaternion operator*(const Quaternion &rhs) const noexcept
内積
Definition Quaternion.hpp:78
 
double toPitch() const noexcept
ピッチ角を取得
Definition Quaternion.hpp:189
 
double ValueType
要素の型
Definition Quaternion.hpp:33
 
ValueType z
z成分
Definition Quaternion.hpp:42
 
double toYaw() const noexcept
ヨー角を取得
Definition Quaternion.hpp:183
 
Quaternion & operator*=(const Quaternion &rhs) noexcept
複合代入演算子
Definition Quaternion.hpp:91
 
void clear() noexcept
値クリア
Definition Quaternion.hpp:173
 
static Quaternion RotateX(ValueType angle) noexcept
X軸回転クオータニオン
Definition Quaternion.hpp:145
 
Quaternion & operator=(const Quaternion &)=default
デフォルトコピー代入演算子
 
constexpr bool isZero() const noexcept
要素がゼロであるか
Definition Quaternion.hpp:167
 
constexpr Quaternion(ValueType x, ValueType y, ValueType z, ValueType w) noexcept
コンストラクタ
Definition Quaternion.hpp:61
 
Euler toEuler() const noexcept
オイラー角に変換
Definition Quaternion.hpp:12
 
static Quaternion RotateZ(ValueType angle) noexcept
Z軸回転クオータニオン
Definition Quaternion.hpp:161
 
constexpr bool operator!=(const Quaternion &rhs) const noexcept
Definition Quaternion.hpp:103
 
ValueType w
w成分
Definition Quaternion.hpp:45
 
ValueType y
y成分
Definition Quaternion.hpp:39
 
static Quaternion Identity() noexcept
単位クオータニオン
Definition Quaternion.hpp:137
 
double toRoll() const noexcept
ロール角を取得
Definition Quaternion.hpp:195
 
Quaternion(const Quaternion &)=default
デフォルトコピーコンストラクタ