annotate Renderer/test_render/untitled.cpp @ 283:55ea4465b1a2

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