comparison Renderer/Application/untitled.cc @ 507:735f76483bb2

Reorganization..
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 12 Oct 2009 09:39:35 +0900
parents
children
comparison
equal deleted inserted replaced
506:1d4a8a86f26b 507:735f76483bb2
1 #include <stdlib.h>
2 #include "SceneGraphRoot.h"
3 #include "SGList.h"
4 #include <math.h>
5
6 static void
7 cubetest_collision(SceneGraphPtr node, int screen_w, int screen_h,
8 SceneGraphPtr tree)
9 {
10 }
11
12 static void
13 test_collision(SceneGraphPtr node, int screen_w, int screen_h,
14 SceneGraphPtr tree)
15 {
16 // test
17 }
18
19 static void
20 test_move(SceneGraphPtr node, int screen_w, int screen_h)
21 {
22
23 node->angle[0] += 10.0f;
24 /*
25 node->stack_xyz[0] = 2.0f;
26 node->stack_xyz[1] = 2.0f;
27
28 //node->xyz[0] += node->stack_xyz[0];
29 node->xyz[0] += node->stack_xyz[0];
30 node->xyz[1] += node->stack_xyz[1];
31
32 if ((int)node->xyz[0] > screen_w
33 || (int)node->xyz[0] < 0) {
34 node->stack_xyz[0] = -node->stack_xyz[0];
35 }
36
37 if ((int)node->xyz[1] > screen_w
38 || (int)node->xyz[1] < 0) {
39 node->stack_xyz[1] = -node->stack_xyz[1];
40 }
41
42 if ((int)node->xyz[2] > 1000
43 || (int)node->xyz[2] < 100) {
44 node->stack_xyz[1] = -node->stack_xyz[1];
45 }
46 */
47
48 }
49
50 static void
51 cubetest_move(SceneGraphPtr node, int screen_w, int screen_h)
52 {
53 node->angle[1] += 10.0f;
54 if (node->angle[1] > 360.0f) {
55 node->angle[1] = 0.0f;
56 }
57 //node->xyz[0] = screen_w/2;
58 node->xyz[0] += node->stack_xyz[0];
59 if ((int)node->xyz[0] > screen_w || (int)node->xyz[0] < 0) {
60 node->stack_xyz[0] = -node->stack_xyz[0];
61 }
62 //node->xyz[1] = screen_h/2;
63 node->xyz[1] += node->stack_xyz[1];
64 if ((int)node->xyz[1] > screen_h || (int)node->xyz[1] < 0) {
65 node->stack_xyz[1] = -node->stack_xyz[1];
66 }
67
68 node->xyz[2] = 1000;
69 //node->xyz[2] += node->stack_xyz[2];
70 //if ((int)node->xyz[2] > screen_h || (int)node->xyz[2] < 100) {
71 //node->stack_xyz[2] = -node->stack_xyz[2];
72 //}
73
74 }
75
76 void
77 untitled_init(TaskManager *manager)
78 {
79 SceneGraphPtr test00;
80 SceneGraphPtr test01;
81 SceneGraphPtr test02;
82 SceneGraphPtr test03;
83 SceneGraphPtr test04;
84 SceneGraphPtr test05;
85 SceneGraphPtr test06;
86 SceneGraphPtr test07;
87 SceneGraphPtr test08;
88 SceneGraphPtr test09;
89
90 sgroot->createFromXMLfile(manager, "xml_file/Venus.xml");
91
92 // SGList.h にある SceneGraph ID から SceneGraph を生成する
93 /*
94 test00 = sgroot->createSceneGraph(cubetest000);
95 test01 = sgroot->createSceneGraph(cubetest009);
96 test02 = sgroot->createSceneGraph(cubetest008);
97 test03 = sgroot->createSceneGraph(cubetest007);
98 test04 = sgroot->createSceneGraph(cubetest006);
99 test05 = sgroot->createSceneGraph(cubetest005);
100 test06 = sgroot->createSceneGraph(cubetest004);
101 test07 = sgroot->createSceneGraph(cubetest003);
102 test08 = sgroot->createSceneGraph(cubetest002);
103 test09 = sgroot->createSceneGraph(cubetest001);
104 */
105 test00 = sgroot->createSceneGraph(Venus000);
106 test01 = sgroot->createSceneGraph(Venus009);
107 test02 = sgroot->createSceneGraph(Venus008);
108 test03 = sgroot->createSceneGraph(Venus007);
109 test04 = sgroot->createSceneGraph(Venus006);
110 test05 = sgroot->createSceneGraph(Venus005);
111 test06 = sgroot->createSceneGraph(Venus004);
112 test07 = sgroot->createSceneGraph(Venus003);
113 test08 = sgroot->createSceneGraph(Venus002);
114 test09 = sgroot->createSceneGraph(Venus001);
115
116 // SceneGraph の move と collision を設定
117 test00->set_move_collision(cubetest_move, cubetest_collision);
118 test00->stack_xyz[0] = 3.0f;
119 test00->stack_xyz[1] = 3.0f;
120 test00->stack_xyz[2] = 3.0f;
121
122
123
124 test01->set_move_collision(test_move, test_collision);
125 test02->set_move_collision(test_move, test_collision);
126 test03->set_move_collision(test_move, test_collision);
127 test04->set_move_collision(test_move, test_collision);
128 test05->set_move_collision(test_move, test_collision);
129 test06->set_move_collision(test_move, test_collision);
130 test07->set_move_collision(test_move, test_collision);
131 test08->set_move_collision(test_move, test_collision);
132 test09->set_move_collision(test_move, test_collision);
133
134 // SceneGraph 同士の親子関係を設定 (今回は 親 test00、子 その他)
135 test00->addChild(test01);
136 test00->addChild(test02);
137 test00->addChild(test03);
138 test00->addChild(test04);
139 test00->addChild(test05);
140 test00->addChild(test06);
141 test00->addChild(test07);
142 test00->addChild(test08);
143 test00->addChild(test09);
144
145 // SceneGraphRoot に、使用する SceneGraph を設定する
146 // このとき、ユーザーが記述した SceneGraph の root を渡す。
147 sgroot->setSceneData(test00);
148
149 }