Mercurial > hg > Members > kono > Cerium
annotate TaskManager/Test/test_render/SceneGraph.h @ 199:eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
author | gongo@gendarme.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Mon, 26 Jan 2009 14:02:45 +0900 |
parents | 8143bbade40d |
children | 3f4c6a75d7e0 |
rev | line source |
---|---|
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
1 #ifndef INCLUDED_SCENE_GRAPH |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
2 #define INCLUDED_SCENE_GRAPH |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
3 |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
4 #ifndef INCLUDED_POLYGON |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
5 # include "polygon.h" |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
6 #endif |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
7 |
140 | 8 #ifndef INCLUDED_PAD |
9 # include "Pad.h" | |
10 #endif | |
11 | |
138 | 12 class SceneGraph; |
13 | |
14 typedef void (*move_func)(SceneGraph* node, int screen_w, int screen_h); | |
15 typedef void (*collision_func)(SceneGraph* node, int screen_w, int screen_h, | |
16 SceneGraph* tree); | |
17 typedef SceneGraph* SceneGraphPtr; | |
18 | |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
19 class SceneGraph : public Polygon { |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
20 public: |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
21 SceneGraph(void); |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
22 SceneGraph(xmlNodePtr surface); |
140 | 23 ~SceneGraph(void); |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
24 |
138 | 25 // Node がもつ状態変数(というべきか否か |
26 // xyz,angle ぐらいあればおk? | |
27 float stack_xyz[3]; | |
28 float stack_angle[3]; | |
29 | |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
30 // xml ファイルから生成した時のオブジェクトリスト |
195 | 31 SceneGraphPtr next; |
32 SceneGraphPtr prev; | |
33 SceneGraphPtr last; | |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
34 |
138 | 35 // Tree Structure |
195 | 36 SceneGraphPtr parent; |
37 SceneGraphPtr brother; | |
38 SceneGraphPtr children; | |
39 SceneGraphPtr lastChild; | |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
40 |
195 | 41 // Tree から削除されていたら 1 をセット。default = 0 |
42 int flag_remove; | |
140 | 43 |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
44 // 関数ポインタ |
138 | 45 move_func move; |
46 collision_func collision; | |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
47 |
140 | 48 void init(void); |
138 | 49 void move_execute(int screen_w, int screen_h); |
195 | 50 void collision_check(int screen_w, int screen_h, SceneGraphPtr tree); |
138 | 51 void all_execute(int screen_w, int screen_h); |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
52 |
195 | 53 void add_next(SceneGraphPtr next); |
54 SceneGraphPtr addChild(SceneGraphPtr child); | |
55 SceneGraphPtr addBrother(SceneGraphPtr bro); | |
56 SceneGraphPtr clone(void); | |
57 SceneGraphPtr searchSceneGraph(char *name); | |
58 void set_move_collision(SceneGraphPtr node, | |
138 | 59 move_func new_move, collision_func new_collision); |
142 | 60 void set_move_collision(move_func new_move, collision_func new_collision); |
195 | 61 void remove(void); |
199
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
195
diff
changeset
|
62 SceneGraphPtr realRemoveFromTree(SceneGraphPtr tree); |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
195
diff
changeset
|
63 SceneGraphPtr realRemoveFromList(SceneGraphPtr list); |
195 | 64 int isRemoved(void); |
65 | |
180
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
142
diff
changeset
|
66 static void createFromXMLfile(const char *); |
195 | 67 static SceneGraphPtr createSceneGraph(int id); |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
68 |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
69 void tree_check(void); |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
70 void print_member(void); |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
71 void get_data(xmlNodePtr cur); |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
72 void delete_data(void); |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
73 }; |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
74 |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
75 #endif |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
76 |
140 | 77 // オリジナル (Linked List) |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
78 extern SceneGraphPtr scene_graph; |
140 | 79 |
80 // 描画用 (同じオブジェクトが複数ある) Tree | |
81 extern SceneGraphPtr scene_graph_view; |