Mercurial > hg > Members > kono > Cerium
view TaskManager/Test/test_render/SceneGraphIterator.cpp @ 201:b257e27d995c
add SceneGraphIterator
author | gongo@gendarme.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Mon, 26 Jan 2009 16:46:59 +0900 |
parents | |
children | 3f4c6a75d7e0 |
line wrap: on
line source
#include "SceneGraphIterator.h" void SceneGraphIterator::set(SceneGraphPtr _list) { list = cur = _list; } /** * 次の SceneGraph があるか返す * * @retval 1 next がある * @retval 0 next がない */ int SceneGraphIterator::hasNext(void) { return (cur->next) ? 1 : 0; } /** * 指定した名前をもつ SceneGraph が以降存在するか * * @param name 検索したい SceneGraph の名前 * @retval 1 next がある * @retval 0 next がない */ int SceneGraphIterator::hasNext(const char *name) { SceneGraphPtr p; for (p = cur->next; p; p = p->next) { if (strcmp(p->name, name) == 0) { return 1; } } return 0; } /** * iterator を次に進める */ void SceneGraphIterator::next(void) { cur = cur->next; } /** * iterator を指定した名前を持つ SceneGraph まで進める * SceneGraph が無い場合、NULL にする */ void SceneGraphIterator::next(const char *name) { SceneGraphPtr p; for (p = cur->next; p; p = p->next) { if (strcmp(p->name, name) == 0) { break; } } cur = p; } /** * 参照中の SceneGraph を削除する */ void SceneGraphIterator::remove(void) { cur->remove(); } /** * 参照中の SceneGraph を返す * * @return current SceneGraph */ SceneGraphPtr SceneGraphIterator::get(void) { return cur; }