Test-quaternion.C
Go to the documentation of this file.
1 #include "quaternion.H"
2 #include "septernion.H"
3 #include "IOstreams.H"
4 
5 using namespace Foam;
6 
7 int main()
8 {
9  quaternion q(vector(1, 0, 0), 0.7853981);
10  Info<< "q " << q << endl;
11 
12  vector v(0, 1, 0);
13  Info<< "v " << v << endl;
14 
15  Info<< "inv(q)*q " << inv(q)*q << endl;
16 
17  Info<< "q*quaternion(0, v)*conjugate(q) "
18  << q*quaternion(0, v)*conjugate(q) << endl;
19 
20  Info<< "q.transform(v) " << q.transform(v) << endl;
21  Info<< "q.R() & v " << (q.R() & v) << endl;
22 
23  Info<< "q.invTransform(v) " << q.invTransform(v) << endl;
24 
25  septernion tr(vector(0, 0.1, 0), q);
26  Info<< "tr " << tr << endl;
27 
28  Info<< "inv(tr)*tr " << inv(tr)*tr << endl;
29 
30  Info<< "tr.transform(v) " << tr.transform(v) << endl;
31 
32  Info<< "(septernion(vector(0, -1, 0))*q*septernion(vector(0, 1, 0)))"
33  << ".transform(v) "
34  << (septernion(vector(0, -1, 0))
35  *q
36  *septernion(vector(0, 1, 0))).transform(v)
37  << endl;
38 
39  return 0;
40 }
IOstreams.H
Useful combination of include files which define Sin, Sout and Serr and the use of IO streams general...
Foam::septernion
Septernion class used to perform translations and rotations in 3D space.
Definition: septernion.H:64
quaternion.H
Foam::endl
Ostream & endl(Ostream &os)
Add newline and flush stream.
Definition: Ostream.H:251
Foam::transform
dimensionSet transform(const dimensionSet &)
Definition: dimensionSet.C:465
Foam::quaternion
Quaternion class used to perform rotations in 3D space.
Definition: quaternion.H:60
septernion.H
Foam::inv
dimensionedSphericalTensor inv(const dimensionedSphericalTensor &dt)
Definition: dimensionedSphericalTensor.C:71
Foam::Info
messageStream Info
Foam
Namespace for OpenFOAM.
Definition: combustionModel.C:30
Foam::vector
Vector< scalar > vector
A scalar version of the templated Vector.
Definition: vector.H:49
Foam::Vector< scalar >
Foam::quaternion::invTransform
vector invTransform(const vector &v) const
Rotate the given vector anti-clockwise.
Definition: quaternionI.H:214
Foam::quaternion::R
tensor R() const
The rotation tensor corresponding the quaternion.
Definition: quaternionI.H:235
Foam::tr
dimensionedScalar tr(const dimensionedSphericalTensor &dt)
Definition: dimensionedSphericalTensor.C:49
Foam::conjugate
quaternion conjugate(const quaternion &q)
Return the conjugate of the given quaternion.
Definition: quaternionI.H:359
main
int main()
Definition: Test-quaternion.C:7
Foam::quaternion::transform
vector transform(const vector &v) const
Rotate the given vector.
Definition: quaternionI.H:208