00001 #ifndef INCLUDED_SCENE_GRAPH_ROOT
00002 #define INCLUDED_SCENE_GRAPH_ROOT
00003
00004 #ifndef INCLUDED_SCENE_GRAPH
00005 # include "SceneGraph.h"
00006 #endif
00007
00008 #ifndef INCLUDED_SCENE_GRAPH_ARRAY
00009 # include "SceneGraphArray.h"
00010 #endif
00011
00012 #ifndef INCLUDED_CAMERA
00013 # include "Camera.h"
00014 #endif
00015
00016 #ifndef INCLUDED_SCENE_GRAPH_ITERATOR
00017 # include "SceneGraphIterator.h"
00018 #endif
00019
00020 class SceneGraphRoot {
00021 public:
00022
00023 SceneGraphRoot(float w, float h);
00024 ~SceneGraphRoot(void);
00025
00026
00027
00028 SceneGraphPtr *sg_src;
00029
00030
00031 SceneGraphPtr sg_exec_tree;
00032
00033
00034 SceneGraphPtr sg_draw_tree;
00035
00036
00037 SceneGraphPtr sg_available_list;
00038
00039
00040
00041 SceneGraphPtr sg_remove_list;
00042
00043 SceneGraphArrayPtr sg_array1;
00044 SceneGraphArrayPtr sg_array2;
00045 SceneGraphArrayPtr sg_curArray;
00046
00047
00048 Pad *controller;
00049
00050
00051 Camera *camera;
00052
00053
00054 SceneGraphIteratorPtr iterator;
00055
00059
00060 void createFromXMLfile(const char *);
00061 SceneGraphPtr createSceneGraph(int id);
00062 SceneGraphPtr createSceneGraph(void);
00063 void setSceneData(SceneGraphPtr sg);
00064 Pad *getController(void);
00065 SceneGraphIteratorPtr getIterator(void);
00066 SceneGraphIteratorPtr getIterator(SceneGraphPtr list);
00067 CameraPtr getCamera(void);
00068
00069
00070 void allExecute(int screen_w, int screen_h);
00071 void checkRemove(void);
00072 SceneGraphPtr getExecuteSceneGraph(void);
00073 SceneGraphPtr getDrawSceneGraph(void);
00074 void updateControllerState(void);
00075
00076
00077 void registSceneGraph(SceneGraphPtr sg);
00078 void addNext(SceneGraphPtr sg);
00079 void allRemove(SceneGraphPtr list);
00080 };
00081
00082 typedef SceneGraphRoot *SceneGraphRootPtr;
00083
00084 #endif
00085
00086 extern SceneGraphRootPtr sgroot;