Mercurial > hg > Members > kono > Cerium
view Renderer/Engine/SceneGraphRoot.h @ 848:df80613f1e1a
addChild fix
author | tkaito |
---|---|
date | Sun, 06 Jun 2010 03:31:52 +0900 |
parents | c260205d3185 |
children | bcc81531a672 |
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" #include <sys/types.h> typedef struct { caddr_t file_mmap; off_t size; } st_mmap_t; class Application; class SceneGraphRoot; typedef void (*regist_func)(SceneGraphRoot *sgroot); class SceneGraphRoot { public: /* Constructor, Destructor */ SceneGraphRoot(float w, float h); ~SceneGraphRoot(); /* Variables */ TaskManager *tmanager; // xml から読み込んだ、オリジナルの SceneGraph // Static Singleton // SceneGraphPtr *sg_src; // int sg_src_length; SceneGraphPtr list; // 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; // 光源のオブジェクト SceneGraphPtr light[4]; int light_switch[4]; int light_sysswitch; // 光源の疑似 xml file // 光源は4つで決め打ち。 // 4 * lightnum (4) = 16; float light_vector[16]; // SceneGraphIterator SceneGraphIteratorPtr iterator; // fd of Linda taple space int tid; // move task test flag int move_finish_flag; // 関数ポインタ regist_func regist; // application で実行する task HTaskPtr move_exec_task; // とりあえず int screen_w; int screen_h; /** * Functions */ /* User API */ void createFromXMLfile(TaskManager *manager, const char *); void createFromXMLmemory(TaskManager *manager, SceneGraph * node, char *data, int len); SceneGraphPtr createSceneGraph(int id); SceneGraphPtr createSceneGraph(); SceneGraphPtr createSceneGraph(const char *name); int getSgid(const char *name); void appTaskRegist(regist_func new_regist); void setSceneData(SceneGraphPtr sg); Pad *getController(); SceneGraphIteratorPtr getIterator(); SceneGraphIteratorPtr getIterator(SceneGraphPtr list); CameraPtr getCamera(); SceneGraphPtr getLight(int id); void OnLightSwitch(int id); void OffLightSwitch(int id); void OnLightSysSwitch(); void OffLightSysSwitch(); /* Other System API */ void allExecute(int screen_w, int screen_h); void oneExecute(int screen_w, int screen_h); void checkRemove(); SceneGraphPtr getExecuteSceneGraph(); SceneGraphPtr getDrawSceneGraph(); void updateControllerState(); void regist_execute(); void move_finish(); float* getLightVector(); int* getLightSwitch(); int getLightSysSwitch(); void speExecute(int screen_w, int screen_h); void speExecute(int screen_w, int screen_h, Application *app); /* System API */ void registSceneGraph(SceneGraphPtr sg); void registSceneGraphList(SceneGraphPtr sg); void addSceneGraphList(TaskManager *manager, SceneGraphPtr tmp); void addNext(SceneGraphPtr sg); void allRemove(SceneGraphPtr list); int getLast() ; }; typedef SceneGraphRoot *SceneGraphRootPtr; // 大域変数は無くすこと //extern SceneGraphRoot *sgroot; //extern SceneGraphRoot *sgroot_A; //extern SceneGraphRoot *sgroot_B; #endif /* end */