Merge branch 'master' of goat:git/laserbrain_demo
[laserbrain_demo] / src / vrinput.cc
1 #include <string.h>
2 #include <goatvr.h>
3 #include "vrinput.h"
4 #include "scene.h"
5 #include "shader.h"
6
7 VRHand vrhand[2];
8
9 //static Scene *scn;
10
11 bool init_vrhands()
12 {
13         /*scn = new Scene;
14         if(!(scn->load("data/vrhands.obj"))) {
15                 return false;
16         }
17         scn->objects[0]->node->set_position(Vec3(0, 150, 0));
18         scn->objects[1]->node->set_position(Vec3(0, 250, 0));
19         scn->update(0);
20         */
21         return true;
22 }
23
24 void destroy_vrhands()
25 {
26         //delete scn;
27         //scn = 0;
28 }
29
30 void update_vrhands(const Avatar *avatar)
31 {
32         Quat qbodyrot;
33         qbodyrot.set_rotation(Vec3(0, 1, 0), -deg_to_rad(avatar->get_body_rotation()));
34         Vec3 pos = avatar->get_position();
35
36         for(int i=0; i<2; i++) {
37                 if(goatvr_hand_active(i)) {
38                         goatvr_hand_position(i, &vrhand[i].pos.x);
39                         goatvr_hand_orientation(i, &vrhand[i].rot.x);
40
41                         vrhand[i].pos = rotate(vrhand[i].pos, qbodyrot) + pos;
42                         vrhand[i].rot = qbodyrot * vrhand[i].rot;
43
44                         vrhand[i].valid = true;
45                 } else {
46                         vrhand[i].valid = false;
47                 }
48         }
49
50         //scn->update(0);
51 }
52
53 void draw_vrhands()
54 {
55         //bind_shader(0);
56         //scn->draw();
57 }