Mercurial > hg > Members > kono > Cerium
annotate Renderer/Engine/SceneGraph.h @ 593:6f741ab60749
sending and moving of multi xml work (linda)
author | kazz@kazzone.st.ie.u-ryukyu.ac.jp |
---|---|
date | Tue, 03 Nov 2009 21:08:47 +0900 |
parents | 735f76483bb2 |
children | d0b8860c17f8 |
rev | line source |
---|---|
283 | 1 #ifndef INCLUDED_SCENE_GRAPH |
2 #define INCLUDED_SCENE_GRAPH | |
3 | |
507 | 4 #include "polygon.h" |
5 #include "Pad.h" | |
6 #include "TaskManager.h" | |
283 | 7 class SceneGraph; |
8 | |
9 typedef void (*move_func)(SceneGraph* node, int screen_w, int screen_h); | |
10 typedef void (*collision_func)(SceneGraph* node, int screen_w, int screen_h, | |
507 | 11 SceneGraph* tree); |
283 | 12 typedef SceneGraph* SceneGraphPtr; |
13 | |
14 class SceneGraph : public Polygon { | |
15 public: | |
16 SceneGraph(void); | |
507 | 17 SceneGraph(TaskManager *manager, xmlNodePtr surface); |
283 | 18 SceneGraph(SceneGraphPtr orig); |
19 ~SceneGraph(void); | |
20 | |
21 // Node がもつ状態変数(というべきか否か | |
22 // xyz,angle ぐらいあればおk? | |
23 float stack_xyz[3]; | |
24 float stack_angle[3]; | |
507 | 25 int id; |
593
6f741ab60749
sending and moving of multi xml work (linda)
kazz@kazzone.st.ie.u-ryukyu.ac.jp
parents:
507
diff
changeset
|
26 // Objectのシーケンス番号(Linda) |
6f741ab60749
sending and moving of multi xml work (linda)
kazz@kazzone.st.ie.u-ryukyu.ac.jp
parents:
507
diff
changeset
|
27 // とりあえず動かしたいので追加 |
6f741ab60749
sending and moving of multi xml work (linda)
kazz@kazzone.st.ie.u-ryukyu.ac.jp
parents:
507
diff
changeset
|
28 int seq; |
6f741ab60749
sending and moving of multi xml work (linda)
kazz@kazzone.st.ie.u-ryukyu.ac.jp
parents:
507
diff
changeset
|
29 |
507 | 30 int property_size; |
31 void* propertyptr; | |
283 | 32 |
33 // xml ファイルから生成した時のオブジェクトリスト | |
34 SceneGraphPtr next; | |
35 SceneGraphPtr prev; | |
36 SceneGraphPtr last; | |
37 | |
38 // Tree Structure | |
39 SceneGraphPtr parent; | |
40 SceneGraphPtr brother; | |
41 SceneGraphPtr children; | |
42 SceneGraphPtr lastChild; | |
43 | |
44 // Tree から削除されていたら 1 をセット。default = 0 | |
45 int flag_remove; | |
46 | |
47 // SceneGraph ID (SGList.h) | |
48 int sgid; | |
49 | |
50 // この SceneGraph は描画するものかどうか (0:しない 1:する | |
51 int flag_drawable; | |
52 | |
53 // anime frame num | |
54 int frame; | |
55 | |
507 | 56 // Group ID |
57 int gid; | |
58 | |
283 | 59 // 関数ポインタ |
60 move_func move; | |
61 collision_func collision; | |
62 | |
63 // desutroctor で呼ばれる | |
64 void (SceneGraph::*finalize)(void); | |
65 | |
66 void init(void); | |
67 void finalize_original(void); | |
68 void finalize_copy(void); | |
69 void move_execute(int screen_w, int screen_h); | |
70 void collision_check(int screen_w, int screen_h, SceneGraphPtr tree); | |
71 void all_execute(int screen_w, int screen_h); | |
72 | |
73 void add_next(SceneGraphPtr next); | |
74 SceneGraphPtr addChild(SceneGraphPtr child); | |
75 SceneGraphPtr addBrother(SceneGraphPtr bro); | |
76 SceneGraphPtr clone(void); | |
77 SceneGraphPtr clone(void *buf); | |
78 SceneGraphPtr searchSceneGraph(const char *name); | |
79 void set_move_collision(SceneGraphPtr node, | |
507 | 80 move_func new_move, collision_func new_collision); |
283 | 81 void set_move_collision(move_func new_move, collision_func new_collision); |
82 void remove(void); | |
83 SceneGraphPtr realRemoveFromTree(SceneGraphPtr tree); | |
84 SceneGraphPtr realRemoveFromList(SceneGraphPtr list); | |
85 int isRemoved(void); | |
86 | |
87 static SceneGraphPtr createSceneGraph(int id); | |
88 | |
89 void translate(float x, float y, float z); | |
90 void translateX(float x); | |
91 void translateY(float y); | |
92 void translateZ(float z); | |
93 | |
94 | |
95 void tree_check(void); | |
96 void print_member(void); | |
507 | 97 void get_data(TaskManager *manager, xmlNodePtr cur); |
283 | 98 void delete_data(void); |
507 | 99 |
100 SDL_Surface* load_decode_image(char *image_name, xmlNodePtr cur); | |
101 int makeTapestries(TaskManager *manager, SDL_Surface *texture_image, int id); | |
102 void get_image(TaskManager *manager, xmlNodePtr cur); | |
283 | 103 }; |
104 | |
105 #endif | |
106 | |
507 | 107 // 帯域変数を使うのは禁止なので削除すること |
283 | 108 // オリジナル (Linked List) |
109 extern SceneGraphPtr scene_graph; | |
110 | |
111 // 描画用 (同じオブジェクトが複数ある) Tree | |
112 extern SceneGraphPtr scene_graph_view; |