Mercurial > hg > Game > Cerium
view TaskManager/Test/test_render/SceneGraphIterator.cpp @ 243:c4918a1fb6c9 draft
rm warning
author | e065746@localhost.localdomain |
---|---|
date | Sun, 31 May 2009 16:26:20 +0900 |
parents | 76bf19f9e305 |
children | c3a6cd4fa878 |
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 id 検索したい SceneGraph の ID * @retval 1 next がある * @retval 0 next がない */ int SceneGraphIterator::hasNext(int id) { SceneGraphPtr p; for (p = cur->next; p; p = p->next) { if (p->sgid == id) { return 1; } } return 0; } /** * iterator を次に進める */ void SceneGraphIterator::next(void) { cur = cur->next; } /** * iterator を指定した ID を持つ SceneGraph まで進める * SceneGraph が無い場合、NULL にする * * @param id 検索したい SceneGraph の ID */ void SceneGraphIterator::next(int id) { SceneGraphPtr p; for (p = cur->next; p; p = p->next) { if (p->sgid == id) { break; } } cur = p; } /** * 参照中の SceneGraph を削除する */ void SceneGraphIterator::remove(void) { cur->remove(); } /** * 参照中の SceneGraph を返す * * @return current SceneGraph */ SceneGraphPtr SceneGraphIterator::get(void) { return cur; }