35
|
1 #include <math.h>
|
|
2 #include "scene_graph_pack.h"
|
|
3 #include "sys.h"
|
|
4 using namespace std;
|
|
5
|
49
|
6 #include "error.h"
|
|
7
|
35
|
8 int
|
48
|
9 update_sgp(SceneGraphPack *sgp, SceneGraphPack *_sgp)
|
35
|
10 {
|
|
11 SceneGraphNodePtr node;
|
36
|
12 float y_angle;
|
35
|
13
|
85
|
14 __debug("[%s]\n", __FUNCTION__);
|
49
|
15
|
35
|
16 for (int i = 0; i < sgp->info.size; i++) {
|
|
17 //(*my_func[node->move])(node);
|
|
18 //(*my_func[node->interaction])(node, sgp);
|
|
19
|
|
20 node = &sgp->node[i];
|
|
21
|
36
|
22 // 本当は、ここは上の my_func で行う
|
|
23 y_angle = node->angle[1];
|
|
24 y_angle += 1.0f;
|
|
25 if (y_angle > 360.0f) y_angle = 0.0f;
|
|
26 node->angle[1] = y_angle;
|
48
|
27 //node->obj_pos[0] += 0.5f;
|
|
28 //node->obj_pos[1] += 0.5f;
|
|
29 //node->obj_pos[2] += 0.5f;
|
36
|
30
|
35
|
31 if (node->pn != -1) {
|
|
32 get_matrix(node->translation,
|
|
33 node->angle, node->obj_pos,
|
|
34 sgp->node[node->pn].translation);
|
|
35 } else {
|
|
36 get_matrix(node->translation,
|
|
37 node->angle, node->obj_pos,
|
|
38 NULL);
|
|
39 }
|
|
40 }
|
|
41
|
|
42 // まあこれは多分駄目なんだけど。
|
|
43 // in/out と update は分ける必要ある?
|
|
44 // それはユーザ側で in/out になるように書かせるもの?
|
86
|
45 //memcpy(_sgp, sgp, sizeof(SceneGraphPack));
|
35
|
46
|
86
|
47 //return sizeof(SceneGraphPack);
|
|
48 return 0;
|
35
|
49 }
|