Mercurial > hg > Game > Cerium
annotate TaskManager/Test/test_render/scene_graph_pack.h @ 146:a98dbb81db5c draft
TileList の生成の修正
author | gongo@gendarme.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Tue, 02 Dec 2008 14:12:01 +0900 |
parents | 91c74dbc32e4 |
children | dc7d10ae7460 |
rev | line source |
---|---|
109 | 1 #ifndef INCLUDED_SCENE_GRAPH_PACK |
2 #define INCLUDED_SCENE_GRAPH_PACK | |
3 | |
137
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
4 #ifndef INCLUDED_SCENE_GRAPH |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
5 # include "SceneGraph.h" |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
6 #endif |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
7 |
109 | 8 #define MAX_NODE 16 |
9 #define MAX_POLYGON 36 | |
10 | |
11 typedef struct SceneGraphNode { | |
12 int size; // この Node で使ってるポリゴンの数、でいいのかな | |
13 float vertex[MAX_POLYGON*3]; | |
14 float texture[MAX_POLYGON*2]; | |
15 float obj_pos[4]; | |
16 float angle[4]; | |
17 float translation[16]; | |
18 long *tex_addr, tex_width, tex_height; | |
19 int id; | |
20 int move, interaction; | |
21 int pn; // parent number? | |
22 SceneGraphNode *next; | |
23 int pad[3]; | |
137
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
24 SceneGraphPtr self; |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
25 SceneGraphPtr tree; |
109 | 26 |
27 void init(void) { | |
28 size = 0; | |
29 next = 0; | |
30 } | |
137
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
31 |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
32 void finish(void) { |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
33 SceneGraphNode *p = this->next, *p1; |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
34 |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
35 while (p) { |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
36 p1 = p->next; |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
37 free(p); |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
38 p = p1; |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
39 } |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
40 } |
109 | 41 }SceneGraphNode, *SceneGraphNodePtr; |
42 | |
43 typedef struct SceneGraphInfo { | |
44 int size; | |
45 int pad[2]; | |
46 }SceneGraphInfo; | |
47 | |
48 typedef struct SceneGraphPack { | |
49 SceneGraphInfo info; | |
50 SceneGraphNode node[MAX_NODE]; | |
51 SceneGraphPack *next; | |
52 | |
53 void init(void){ | |
54 next = 0; | |
55 info.size = 0; | |
56 | |
57 for (int i = 0; i < MAX_NODE; i++) { | |
58 node[i].size = 0; | |
59 } | |
60 } | |
137
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
61 |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
62 void finish(void) { |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
63 for (int i = 0; i < info.size; i++) { |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
64 node[i].finish(); |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
65 } |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
66 |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
67 next = 0; |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
68 info.size = 0; |
91c74dbc32e4
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
123
diff
changeset
|
69 } |
109 | 70 } SceneGraphPack, *SceneGraphPackPtr; |
71 | |
72 #endif |