annotate libs/vmath/basis.h @ 35:23e5d274b2a2
added options panel, also added the xib files to the repository as they're needed
author |
John Tsiombikas <nuclear@member.fsf.org> |
date |
Fri, 09 Sep 2011 10:03:42 +0300 |
parents |
|
children |
ff055bff6a15 |
rev |
line source |
nuclear@28
|
1 #ifndef VMATH_BASIS_H_
|
nuclear@28
|
2 #define VMATH_BASIS_H_
|
nuclear@28
|
3
|
nuclear@28
|
4 #include "vector.h"
|
nuclear@28
|
5 #include "matrix.h"
|
nuclear@28
|
6
|
nuclear@28
|
7 enum {
|
nuclear@28
|
8 LEFT_HANDED,
|
nuclear@28
|
9 RIGHT_HANDED
|
nuclear@28
|
10 };
|
nuclear@28
|
11
|
nuclear@28
|
12 #ifdef __cplusplus
|
nuclear@28
|
13 extern "C" {
|
nuclear@28
|
14 #endif /* __cplusplus */
|
nuclear@28
|
15
|
nuclear@28
|
16 void basis_matrix(mat4_t res, vec3_t i, vec3_t j, vec3_t k);
|
nuclear@28
|
17 void basis_matrix_dir(mat4_t res, vec3_t dir);
|
nuclear@28
|
18
|
nuclear@28
|
19 #ifdef __cplusplus
|
nuclear@28
|
20 } /* extern "C" */
|
nuclear@28
|
21
|
nuclear@28
|
22 class Basis {
|
nuclear@28
|
23 public:
|
nuclear@28
|
24 Vector3 i, j, k;
|
nuclear@28
|
25
|
nuclear@28
|
26 Basis();
|
nuclear@28
|
27 Basis(const Vector3 &i, const Vector3 &j, const Vector3 &k);
|
nuclear@28
|
28 Basis(const Vector3 &dir, bool left_handed = true);
|
nuclear@28
|
29
|
nuclear@28
|
30 void rotate(scalar_t x, scalar_t y, scalar_t z);
|
nuclear@28
|
31 void rotate(const Vector3 &axis, scalar_t angle);
|
nuclear@28
|
32 void rotate(const Matrix4x4 &mat);
|
nuclear@28
|
33 void rotate(const Quaternion &quat);
|
nuclear@28
|
34
|
nuclear@28
|
35 Matrix3x3 create_rotation_matrix() const;
|
nuclear@28
|
36 };
|
nuclear@28
|
37 #endif /* __cplusplus */
|
nuclear@28
|
38
|
nuclear@28
|
39 #endif /* VMATH_BASIS_H_ */
|