diff TaskManager/Test/test_render/SceneGraphIterator.cpp @ 341:c3a6cd4fa878 draft

add param gid [SceneGraph.h], func [SceneGraphIterator]
author aaa
date Mon, 29 Jun 2009 20:28:42 +0900
parents 76bf19f9e305
children
line wrap: on
line diff
--- a/TaskManager/Test/test_render/SceneGraphIterator.cpp	Mon Jun 29 16:30:20 2009 +0900
+++ b/TaskManager/Test/test_render/SceneGraphIterator.cpp	Mon Jun 29 20:28:42 2009 +0900
@@ -39,6 +39,26 @@
     return 0;
 }
 
+/*!
+  指定したグループが以降存在するか
+  
+  @param id 検索したい Group の ID
+  @retval 1 next がある
+  @retval 0 next がない
+ */
+int
+SceneGraphIterator::hasNextGroup(int id)
+{
+    SceneGraphPtr p;
+    for (p = cur->next; p; p = p->next) {
+	if (p->gid == id) {
+	    return 1;
+	}
+    }
+
+    return 0;
+}
+
 /**
  * iterator を次に進める
  */
@@ -68,6 +88,25 @@
     cur = p;
 }
 
+/*!
+  iterator を指定した Group ID を持つ SceneGraph まで進める
+
+  @param id 検索したい SceneGraph の Group ID
+ */
+void
+SceneGraphIterator::nextGroup(int id)
+{
+    SceneGraphPtr p;
+
+    for (p = cur->next; p; p = p->next) {
+	if (p->gid == id) {
+	    break;
+	}
+    }
+
+    cur = p;
+}
+
 /**
  * 参照中の SceneGraph を削除する
  */