kDB: Knowledge DataBase
Loading...
Searching...
No Matches
Quaternion.h
1#pragma once
2
3#include <QtGlobal>
4
5#include <clog_qt>
6#include <cres_qt>
7
8#include <knowCore/Forward.h>
9
10namespace knowGIS
11{
13 {
14 public:
15 Quaternion() : Quaternion(identity()) {}
16 Quaternion(qreal _x, qreal _y, qreal _z, qreal _w) : m_x(_x), m_y(_y), m_z(_z), m_w(_w) {}
17 static Quaternion identity() { return Quaternion(0.0, 0.0, 0.0, 1.0); }
18 ~Quaternion() {}
19 qreal x() const { return m_x; }
20 qreal y() const { return m_y; }
21 qreal z() const { return m_z; }
22 qreal w() const { return m_w; }
23 bool operator==(const Quaternion& _rhs) const
24 {
25 return m_x == _rhs.m_x and m_y == _rhs.m_y and m_z == _rhs.m_z and m_w == _rhs.m_w;
26 }
27 QByteArray md5() const;
28 QJsonValue toJsonValue() const;
29 static cres_qresult<Quaternion> fromJsonValue(const QJsonValue& _value);
30 QCborValue toCborValue() const;
31 static cres_qresult<Quaternion> fromCborValue(const QCborValue& _value);
32 private:
33 qreal m_x, m_y, m_z, m_w;
34 };
35} // namespace knowGIS
36
37#include <knowCore/Formatter.h>
38clog_format_declare_formatter(knowGIS::Quaternion)
39{
40 return format_to(ctx.out(), "(x={} y={} z={} w={})", p.x(), p.y(), p.z(), p.w());
41}
42
43#include <knowCore/MetaType.h>
44KNOWCORE_DECLARE_FULL_METATYPE(knowGIS, Quaternion);
Definition Quaternion.h:13