Mercurial > hg > Game > Cerium
diff Renderer/Engine/SceneGraphRoot.h @ 539:3bc98f6d31ff draft
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@15bfacccde99 |
children | 1a31b8820a4d |
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;