diff Renderer/test_render/untitled.cpp @ 283:55ea4465b1a2

fix test_render
author e065746@localhost.localdomain
date Fri, 05 Jun 2009 16:49:12 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Renderer/test_render/untitled.cpp	Fri Jun 05 16:49:12 2009 +0900
@@ -0,0 +1,149 @@
+#include <stdlib.h>
+#include "SceneGraphRoot.h"
+#include "SGList.h"
+#include <math.h>
+
+static void
+cubetest_collision(SceneGraphPtr node, int screen_w, int screen_h,
+	       SceneGraphPtr tree)
+{
+}
+
+static void
+test_collision(SceneGraphPtr node, int screen_w, int screen_h,
+	       SceneGraphPtr tree)
+{
+  // test
+}
+
+static void
+test_move(SceneGraphPtr node, int screen_w, int screen_h)
+{
+
+  node->angle[0] += 10.0f;
+  /*
+  node->stack_xyz[0] = 2.0f;
+  node->stack_xyz[1] = 2.0f;
+
+  //node->xyz[0] += node->stack_xyz[0];
+  node->xyz[0] += node->stack_xyz[0];
+  node->xyz[1] += node->stack_xyz[1];
+
+  if ((int)node->xyz[0] > screen_w 
+      || (int)node->xyz[0] < 0) {
+    node->stack_xyz[0] = -node->stack_xyz[0];
+  }
+  
+  if ((int)node->xyz[1] > screen_w 
+      || (int)node->xyz[1] < 0) {
+    node->stack_xyz[1] = -node->stack_xyz[1];
+  }  
+
+  if ((int)node->xyz[2] >  1000
+      || (int)node->xyz[2] < 100) {
+    node->stack_xyz[1] = -node->stack_xyz[1];
+  }  
+  */
+  
+}
+
+static void
+cubetest_move(SceneGraphPtr node, int screen_w, int screen_h)
+{
+    node->angle[1] += 10.0f;
+    if (node->angle[1] > 360.0f) {
+	node->angle[1] = 0.0f;
+    }
+    //node->xyz[0] = screen_w/2;
+    node->xyz[0] += node->stack_xyz[0];
+    if ((int)node->xyz[0] > screen_w || (int)node->xyz[0] < 0) {
+	node->stack_xyz[0] = -node->stack_xyz[0];
+    }
+    //node->xyz[1] = screen_h/2;
+    node->xyz[1] += node->stack_xyz[1];
+    if ((int)node->xyz[1] > screen_h || (int)node->xyz[1] < 0) {
+	node->stack_xyz[1] = -node->stack_xyz[1];
+    }
+
+    node->xyz[2] = 1000;
+    //node->xyz[2] += node->stack_xyz[2];
+    //if ((int)node->xyz[2] > screen_h || (int)node->xyz[2] < 100) {
+    //node->stack_xyz[2] = -node->stack_xyz[2];
+    //}
+  
+}
+
+void
+untitled_init(void)
+{
+    SceneGraphPtr test00;
+    SceneGraphPtr test01;
+    SceneGraphPtr test02;
+    SceneGraphPtr test03;
+    SceneGraphPtr test04;
+    SceneGraphPtr test05;
+    SceneGraphPtr test06;
+    SceneGraphPtr test07;
+    SceneGraphPtr test08;
+    SceneGraphPtr test09;
+
+    sgroot->createFromXMLfile("xml_file/Venus.xml");
+
+    // SGList.h にある SceneGraph ID から SceneGraph を生成する
+    /*
+    test00 = sgroot->createSceneGraph(cubetest000);
+    test01 = sgroot->createSceneGraph(cubetest009);
+    test02 = sgroot->createSceneGraph(cubetest008);
+    test03 = sgroot->createSceneGraph(cubetest007);
+    test04 = sgroot->createSceneGraph(cubetest006);
+    test05 = sgroot->createSceneGraph(cubetest005);
+    test06 = sgroot->createSceneGraph(cubetest004);
+    test07 = sgroot->createSceneGraph(cubetest003);
+    test08 = sgroot->createSceneGraph(cubetest002);
+    test09 = sgroot->createSceneGraph(cubetest001);
+    */
+    test00 = sgroot->createSceneGraph(Venus000);
+    test01 = sgroot->createSceneGraph(Venus009);
+    test02 = sgroot->createSceneGraph(Venus008);
+    test03 = sgroot->createSceneGraph(Venus007);
+    test04 = sgroot->createSceneGraph(Venus006);
+    test05 = sgroot->createSceneGraph(Venus005);
+    test06 = sgroot->createSceneGraph(Venus004);
+    test07 = sgroot->createSceneGraph(Venus003);
+    test08 = sgroot->createSceneGraph(Venus002);
+    test09 = sgroot->createSceneGraph(Venus001);
+    
+    // SceneGraph の move と collision を設定
+    test00->set_move_collision(cubetest_move, cubetest_collision);
+    test00->stack_xyz[0] = 3.0f;
+    test00->stack_xyz[1] = 3.0f;
+    test00->stack_xyz[2] = 3.0f;
+
+    
+    
+    test01->set_move_collision(test_move, test_collision);
+    test02->set_move_collision(test_move, test_collision);
+    test03->set_move_collision(test_move, test_collision);
+    test04->set_move_collision(test_move, test_collision);
+    test05->set_move_collision(test_move, test_collision);
+    test06->set_move_collision(test_move, test_collision);
+    test07->set_move_collision(test_move, test_collision);
+    test08->set_move_collision(test_move, test_collision);
+    test09->set_move_collision(test_move, test_collision);
+    
+    // SceneGraph 同士の親子関係を設定 (今回は 親 test00、子 その他)
+    test00->addChild(test01);
+    test00->addChild(test02);
+    test00->addChild(test03);
+    test00->addChild(test04);
+    test00->addChild(test05);
+    test00->addChild(test06);
+    test00->addChild(test07);
+    test00->addChild(test08);
+    test00->addChild(test09);
+
+    // SceneGraphRoot に、使用する SceneGraph を設定する
+    // このとき、ユーザーが記述した SceneGraph の root を渡す。
+    sgroot->setSceneData(test00);
+    
+}