Mercurial > hg > Game > Cerium
view Renderer/Engine/SceneGraphRoot.h @ 541:1a31b8820a4d draft
Cerium Rendering Library
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 12 Oct 2009 10:17:09 +0900 |
parents | 3bc98f6d31ff |
children | 00428ba0ba03 |
line wrap: on
line source
#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; int sg_src_length; // 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;