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