Mercurial > hg > Members > kono > Cerium
annotate TaskManager/Test/test_render/SceneGraph.h @ 202:3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
add variable SceneGraph::sgid, flag_drawbale
author | gongo@gendarme.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Mon, 26 Jan 2009 16:58:35 +0900 |
parents | eb20274baa7c |
children | fe2cc32cd94d |
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 |
202
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
199
diff
changeset
|
44 // SceneGraph ID (SGList.h) |
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
199
diff
changeset
|
45 int sgid; |
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
199
diff
changeset
|
46 |
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
199
diff
changeset
|
47 // この SceneGraph は描画するものかどうか (0:しない 1:する |
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
199
diff
changeset
|
48 int flag_drawable; |
3f4c6a75d7e0
fix SceneGraphIterator::hasNext(), next()
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
199
diff
changeset
|
49 |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
50 // 関数ポインタ |
138 | 51 move_func move; |
52 collision_func collision; | |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
53 |
140 | 54 void init(void); |
138 | 55 void move_execute(int screen_w, int screen_h); |
195 | 56 void collision_check(int screen_w, int screen_h, SceneGraphPtr tree); |
138 | 57 void all_execute(int screen_w, int screen_h); |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
58 |
195 | 59 void add_next(SceneGraphPtr next); |
60 SceneGraphPtr addChild(SceneGraphPtr child); | |
61 SceneGraphPtr addBrother(SceneGraphPtr bro); | |
62 SceneGraphPtr clone(void); | |
63 SceneGraphPtr searchSceneGraph(char *name); | |
64 void set_move_collision(SceneGraphPtr node, | |
138 | 65 move_func new_move, collision_func new_collision); |
142 | 66 void set_move_collision(move_func new_move, collision_func new_collision); |
195 | 67 void remove(void); |
199
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
195
diff
changeset
|
68 SceneGraphPtr realRemoveFromTree(SceneGraphPtr tree); |
eb20274baa7c
add SceneGraph(ieshoot), add SystemSceneGraph(Camera)
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
195
diff
changeset
|
69 SceneGraphPtr realRemoveFromList(SceneGraphPtr list); |
195 | 70 int isRemoved(void); |
71 | |
180
5cde66c926b4
いろいろ fix 。詳しくは TaskManager/Changelog、test_render/Changelog を
gongo@localhost.localdomain
parents:
142
diff
changeset
|
72 static void createFromXMLfile(const char *); |
195 | 73 static SceneGraphPtr createSceneGraph(int id); |
137
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 void tree_check(void); |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
76 void print_member(void); |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
77 void get_data(xmlNodePtr cur); |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
78 void delete_data(void); |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
79 }; |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
80 |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
81 #endif |
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
82 |
140 | 83 // オリジナル (Linked List) |
137
6cf991f28c6c
SceneGraphPack の代わりに、今は SceneGraph をそのまま使う様に設定。
gongo@gendarme.cr.ie.u-ryukyu.ac.jp
parents:
diff
changeset
|
84 extern SceneGraphPtr scene_graph; |
140 | 85 |
86 // 描画用 (同じオブジェクトが複数ある) Tree | |
87 extern SceneGraphPtr scene_graph_view; |