diff Renderer/Engine/SceneGraph.h @ 656:d0b8860c17f8

remove global variable "sgroot" , add SgChange.{cc, h} SgMain.cc SgRootChange.{cc, h}
author hiroki@henri.cr.ie.u-ryukyu.ac.jp
date Wed, 25 Nov 2009 21:56:14 +0900
parents 6f741ab60749
children 6d11ecef3b74
line wrap: on
line diff
--- a/Renderer/Engine/SceneGraph.h	Sat Nov 21 11:20:29 2009 +0900
+++ b/Renderer/Engine/SceneGraph.h	Wed Nov 25 21:56:14 2009 +0900
@@ -6,8 +6,11 @@
 #include "TaskManager.h"
 class SceneGraph;
 
-typedef void (*move_func)(SceneGraph* node, int screen_w, int screen_h);
-typedef void (*collision_func)(SceneGraph* node, int screen_w, int screen_h,
+//typedef void (*move_func)(SceneGraph* node, int screen_w, int screen_h);
+typedef void (*move_func)(SceneGraph* node, void *sgroot, int screen_w, int screen_h);
+//typedef void (*collision_func)(SceneGraph* node, int screen_w, int screen_h,
+//                               SceneGraph* tree);
+typedef void (*collision_func)(SceneGraph* node, void *sgroot, int screen_w, int screen_h,
                                SceneGraph* tree);
 typedef SceneGraph* SceneGraphPtr;
 
@@ -18,6 +21,9 @@
     SceneGraph(SceneGraphPtr orig);
     ~SceneGraph(void);
 
+    // add
+    void *sgroot;
+
     // Node がもつ状態変数(というべきか否か
     // xyz,angle ぐらいあればおk?
     float stack_xyz[3];
@@ -79,6 +85,7 @@
     void set_move_collision(SceneGraphPtr node,
                             move_func new_move, collision_func new_collision);
     void set_move_collision(move_func new_move, collision_func new_collision);
+    void set_move_collision(move_func new_move, collision_func new_collision, void *sgroot);
     void remove(void);
     SceneGraphPtr realRemoveFromTree(SceneGraphPtr tree);
     SceneGraphPtr realRemoveFromList(SceneGraphPtr list);