AutoPas  3.0.0
Loading...
Searching...
No Matches
Quaternion.h
Go to the documentation of this file.
1
7#pragma once
8
9#include <array>
10#include <vector>
11
17
25std::vector<std::array<double, 3>> rotateVectorOfPositions(const std::array<double, 4> &q,
26 const std::vector<std::array<double, 3>> &positionVector);
27
34std::array<double, 3> rotatePosition(const std::array<double, 4> &q, const std::array<double, 3> &pos);
35
42std::array<double, 3> rotatePositionBackwards(const std::array<double, 4> &q, const std::array<double, 3> &pos);
43
50std::array<double, 4> qMul(const std::array<double, 4> &q1, const std::array<double, 4> &q2);
51
58std::array<double, 4> qMul(const std::array<double, 4> &q, const std::array<double, 3> &v);
59
66std::array<double, 4> qMul(const std::array<double, 3> &v, const std::array<double, 4> &q);
67
73std::array<double, 4> qConjugate(const std::array<double, 4> &q);
74
80std::array<double, 3> convertQuaternionTo3DVec(const std::array<double, 4> &q);
81
88std::array<double, 4> qMirror(const std::array<double, 4> &q, const int &dimensionNormalToMirror);
89} // namespace autopas::utils::quaternion
Array utils specifically for handling quaternions.
Definition: Quaternion.cpp:11
std::array< double, 4 > qConjugate(const std::array< double, 4 > &q)
Quaternion conjugation.
Definition: Quaternion.cpp:97
std::array< double, 3 > rotatePositionBackwards(const std::array< double, 4 > &q, const std::array< double, 3 > &pos)
Rotates a single 3D position backwards.
Definition: Quaternion.cpp:78
std::array< double, 4 > qMul(const std::array< double, 4 > &q1, const std::array< double, 4 > &q2)
Quaternion multiplication.
Definition: Quaternion.cpp:82
std::array< double, 3 > convertQuaternionTo3DVec(const std::array< double, 4 > &q)
Convert quaternion to 3d-vec.
Definition: Quaternion.cpp:99
std::vector< std::array< double, 3 > > rotateVectorOfPositions(const std::array< double, 4 > &q, const std::vector< std::array< double, 3 > > &positionVector)
Rotates a std::vector of 3D positions.
Definition: Quaternion.cpp:13
std::array< double, 3 > rotatePosition(const std::array< double, 4 > &q, const std::array< double, 3 > &pos)
Rotates a single 3D position.
Definition: Quaternion.cpp:47
std::array< double, 4 > qMirror(const std::array< double, 4 > &q, const int &dimensionNormalToMirror)
Calculate the quaternion representing the same rotation, but mirrored.
Definition: Quaternion.cpp:107