Mercurial > hg > Game > Cerium
diff TaskManager/Test/test_render/SceneGraphRoot.h @ 196:ecda783a926f draft
add SceneGraphRoot, tools/create_sglist.pl
author | gongo@gendarme.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Sun, 25 Jan 2009 17:46:37 +0900 |
parents | |
children | b832e6cff83e |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/TaskManager/Test/test_render/SceneGraphRoot.h Sun Jan 25 17:46:37 2009 +0900 @@ -0,0 +1,52 @@ +#ifndef INCLUDED_SCENE_GRAPH_ROOT +#define INCLUDED_SCENE_GRAPH_ROOT + +#ifndef INCLUDED_SCENE_GRAPH +# include "SceneGraph.h" +#endif + +class SceneGraphRoot { +public: + /* Constructor, Destructor */ + SceneGraphRoot(void); + ~SceneGraphRoot(void); + + /* Variables */ + // xml から読み込んだ、オリジナルの SceneGraph + SceneGraphPtr *sg_src; + + // move, collision 用の SceneGraph (tree) + SceneGraphPtr sg_exec_list; + + // 描画用の SceneGraph List (tree) + SceneGraphPtr sg_draw_list; + + // 現在存在する SceneGraph (double linked list) + SceneGraphPtr sg_available_list; + + // コントローラーオブジェクト (Keyboard, Joystick, ..) + Pad *controller; + + /** + * Functions + */ + /* User API */ + void createFromXMLfile(const char *); + SceneGraphPtr createSceneGraph(int id); + void setSceneData(SceneGraphPtr sg); + + /* Other System API */ + void allExecute(int screen_w, int screen_h); + void checkRemove(void); + SceneGraphPtr getExecuteSceneGraph(void); + SceneGraphPtr getDrawSceneGraph(void); + void updateControllerState(void); + + /* System API */ + void registSceneGraph(SceneGraphPtr sg); + void addNext(SceneGraphPtr sg); +}; + +typedef SceneGraphRoot *SceneGraphRootPtr; + +#endif