diff Renderer/Engine/SceneGraphRoot.h @ 507:735f76483bb2

Reorganization..
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 12 Oct 2009 09:39:35 +0900
parents Renderer/test_render/SceneGraphRoot.h@55ea4465b1a2
children 8148c81d2660
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Renderer/Engine/SceneGraphRoot.h	Mon Oct 12 09:39:35 2009 +0900
@@ -0,0 +1,79 @@
+#ifndef INCLUDED_SCENE_GRAPH_ROOT
+#define INCLUDED_SCENE_GRAPH_ROOT
+
+#include "SceneGraph.h"
+#include "SceneGraphArray.h"
+#include "Camera.h"
+#include "SceneGraphIterator.h"
+
+class SceneGraphRoot {
+public:
+    /* Constructor, Destructor */
+    SceneGraphRoot(float w, float h);
+    ~SceneGraphRoot(void);
+
+    /* Variables */
+    // xml から読み込んだ、オリジナルの SceneGraph
+    SceneGraphPtr *sg_src;
+
+    // move, collision 用の SceneGraph (tree)
+    SceneGraphPtr sg_exec_tree;
+
+    // 描画用の SceneGraph List (tree)
+    SceneGraphPtr sg_draw_tree;
+
+    // sg_exec_tree に対応する list
+    SceneGraphPtr sg_available_list;
+
+    // sg_draw_tree に対応する list
+    // draw_tree は描画後削除される
+    SceneGraphPtr sg_remove_list;
+
+    SceneGraphArrayPtr sg_array1;
+    SceneGraphArrayPtr sg_array2;
+    SceneGraphArrayPtr sg_curArray;
+
+    // コントローラーオブジェクト (Keyboard, Joystick, ..)
+    Pad *controller;
+
+    // カメラオブジェクト
+    Camera *camera;
+
+    // SceneGraphIterator
+    SceneGraphIteratorPtr iterator;
+
+    /**
+     * Functions
+     */
+    /* User API */
+    void createFromXMLfile(TaskManager *manager, const char *);
+    SceneGraphPtr createSceneGraph(int id);
+    SceneGraphPtr createSceneGraph(void);
+    void setSceneData(SceneGraphPtr sg);
+    Pad *getController(void);
+    SceneGraphIteratorPtr getIterator(void);
+    SceneGraphIteratorPtr getIterator(SceneGraphPtr list);
+    CameraPtr getCamera(void);
+
+    /* Other System API */
+    void allExecute(int screen_w, int screen_h);
+    void checkRemove(void);
+    SceneGraphPtr getExecuteSceneGraph(void);
+    SceneGraphPtr getDrawSceneGraph(void);
+    void updateControllerState(void);
+
+    void speExecute(int screen_w, int screen_h);
+
+    /* System API */
+    void registSceneGraph(SceneGraphPtr sg);
+    void addNext(SceneGraphPtr sg);
+    void allRemove(SceneGraphPtr list);
+};
+
+typedef SceneGraphRoot *SceneGraphRootPtr;
+
+#endif
+
+// 大域変数は無くすこと
+extern SceneGraphRootPtr sgroot;
+extern SceneGraphRootPtr sgroot_2;