-
Notifications
You must be signed in to change notification settings - Fork 1
/
quaternion.cpp
62 lines (49 loc) · 951 Bytes
/
quaternion.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#include "quaternion.h"
quaternion::quaternion()
{
}
quaternion::~quaternion()
{
}
quaternion::quaternion(double a, double b, double c, double d)
{
matDouble data(4, 1);
_data = data;
_data(1, 1) = a;
_data(2, 1) = b;
_data(3, 1) = c;
_data(4, 1) = d;
}
double quaternion::operator()(const long long rhs)
{
if (rhs <= 4 && rhs > 0 )
{
return _data(1, rhs);
}
else
{
error("operator() -> wrong indexing :: Only 1 to 4 ");
return -10000;
}
}
quaternion quaternion::operator*(const quaternion &rhs) // UNIMPLEMENTED !!
{
quaternion data(0, 0, 0, 0);
return data;//* rhs_data(1,1);
}
double quaternion::returnRealPart()
{
return _data(1, 1);
}
matDouble quaternion::returnVectorPart()
{
matDouble data(3, 1);
data(1, 1) = _data(2, 1);
data(2, 1) = _data(3, 1);
data(3, 1) = _data(4, 1);
return data;
}
void quaternion::print()
{
_data.print();
}