Main Page
Namespaces
Classes
Files
File List
File Members
/home/damien/work/2012_2013_teaching/2012_5eti_synthese/lib3d/quaternion.hpp
Go to the documentation of this file.
1
2
#ifndef QUATERNION_HPP
3
#define QUATERNION_HPP
4
5
#include <
v4.hpp
>
6
7
namespace
cpe
8
{
9
class
matrix3;
10
12
class
quaternion
:
public
v4
13
{
14
public
:
15
// ********************************************* //
16
// ********************************************* //
17
// CONSTRUCTORS
18
// ********************************************* //
19
// ********************************************* //
20
22
quaternion
();
24
quaternion
(
const
v3
&
axis
,
const
double
&
angle
);
26
quaternion
(
const
v4
& v);
28
quaternion
(
const
double
&
x
,
const
double
&
y
,
const
double
&
z
,
const
double
&
w
);
29
30
31
// ********************************************* //
32
// ********************************************* //
33
// GET
34
// ********************************************* //
35
// ********************************************* //
36
38
v3
axis
()
const
;
40
double
angle
()
const
;
41
42
// ********************************************* //
43
// ********************************************* //
44
// Math
45
// ********************************************* //
46
// ********************************************* //
47
51
matrix3
matrix
()
const
;
52
54
quaternion
conjugated
()
const
;
55
61
static
quaternion
slerp
(
const
quaternion
& q0,
const
quaternion
& q1,
const
double
alpha);
62
64
v3
rotate
(
const
v3
& vec)
const
;
65
66
67
// ********************************************* //
68
// ********************************************* //
69
// Operators
70
// ********************************************* //
71
// ********************************************* //
72
74
quaternion
&
operator*=
(
const
quaternion
& q);
76
quaternion
&
operator*=
(
const
double
& s);
78
quaternion
&
operator+=
(
const
quaternion
& q);
80
quaternion
&
operator-=
(
const
quaternion
& q);
82
quaternion
&
operator/=
(
const
double
& s);
83
85
quaternion
operator*
(
const
quaternion
& q)
const
;
87
quaternion
operator*
(
const
v3
& v)
const
;
89
quaternion
operator*
(
const
double
& s)
const
;
91
quaternion
operator+
(
const
quaternion
& q)
const
;
93
quaternion
operator-
(
const
quaternion
& q)
const
;
95
quaternion
operator/
(
const
double
& s)
const
;
96
98
quaternion
operator-
()
const
;
99
100
101
102
103
104
105
private
:
106
107
};
108
110
quaternion
operator*
(
const
double
& s,
const
quaternion
& q);
111
112
114
class
exception_quaternion
:
public
exception_v4
115
{
116
public
:
117
119
exception_quaternion
():
exception_v4
(){}
121
exception_quaternion
(
const
std::string& msg,
const
std::string&
file
,
const
std::string&
caller
,
const
int
&
line
):
exception_v4
(msg,file,caller,line){}
122
};
123
124
125
}
126
127
#endif
quaternion.hpp
Generated on Tue Oct 2 2012 17:20:55 by
1.8.2