Mercurial > hg > Members > e085722 > Cerium
comparison Renderer/Engine/SceneGraphIterator.cc @ 0:04e28d8d3c6f
first commit
author | Daiki KINJYO <e085722@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 08 Nov 2010 01:23:25 +0900 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:04e28d8d3c6f |
---|---|
1 #include "SceneGraphIterator.h" | |
2 | |
3 void | |
4 SceneGraphIterator::set(SceneGraphPtr _list) | |
5 { | |
6 list = cur = _list; | |
7 } | |
8 | |
9 /** | |
10 * 次の SceneGraph があるか返す | |
11 * | |
12 * @retval 1 next がある | |
13 * @retval 0 next がない | |
14 */ | |
15 int | |
16 SceneGraphIterator::hasNext(void) | |
17 { | |
18 return (cur->next) ? 1 : 0; | |
19 } | |
20 | |
21 /** | |
22 * 指定した名前をもつ SceneGraph が以降存在するか | |
23 * | |
24 * @param id 検索したい SceneGraph の ID | |
25 * @retval 1 next がある | |
26 * @retval 0 next がない | |
27 */ | |
28 int | |
29 SceneGraphIterator::hasNext(int id) | |
30 { | |
31 SceneGraphPtr p; | |
32 | |
33 for (p = cur->next; p; p = p->next) { | |
34 if (p->sgid == id) { | |
35 return 1; | |
36 } | |
37 } | |
38 | |
39 return 0; | |
40 } | |
41 | |
42 /*! | |
43 指定したグループが以降存在するか | |
44 | |
45 @param id 検索したい Group の ID | |
46 @retval 1 next がある | |
47 @retval 0 next がない | |
48 */ | |
49 int | |
50 SceneGraphIterator::hasNextGroup(int id) | |
51 { | |
52 SceneGraphPtr p; | |
53 for (p = cur->next; p; p = p->next) { | |
54 if (p->gid == id) { | |
55 return 1; | |
56 } | |
57 } | |
58 | |
59 return 0; | |
60 } | |
61 | |
62 /** | |
63 * iterator を次に進める | |
64 */ | |
65 void | |
66 SceneGraphIterator::next(void) | |
67 { | |
68 cur = cur->next; | |
69 } | |
70 | |
71 /** | |
72 * iterator を指定した ID を持つ SceneGraph まで進める | |
73 * SceneGraph が無い場合、NULL にする | |
74 * | |
75 * @param id 検索したい SceneGraph の ID | |
76 */ | |
77 void | |
78 SceneGraphIterator::next(int id) | |
79 { | |
80 SceneGraphPtr p; | |
81 | |
82 for (p = cur->next; p; p = p->next) { | |
83 if (p->sgid == id) { | |
84 break; | |
85 } | |
86 } | |
87 | |
88 cur = p; | |
89 } | |
90 | |
91 /*! | |
92 iterator を指定した Group ID を持つ SceneGraph まで進める | |
93 | |
94 @param id 検索したい SceneGraph の Group ID | |
95 */ | |
96 void | |
97 SceneGraphIterator::nextGroup(int id) | |
98 { | |
99 SceneGraphPtr p; | |
100 | |
101 for (p = cur->next; p; p = p->next) { | |
102 if (p->gid == id) { | |
103 break; | |
104 } | |
105 } | |
106 | |
107 cur = p; | |
108 } | |
109 | |
110 /** | |
111 * 参照中の SceneGraph を削除する | |
112 */ | |
113 void | |
114 SceneGraphIterator::remove(void) | |
115 { | |
116 cur->remove(); | |
117 } | |
118 | |
119 /** | |
120 * 参照中の SceneGraph を返す | |
121 * | |
122 * @return current SceneGraph | |
123 */ | |
124 SceneGraphPtr | |
125 SceneGraphIterator::get(void) | |
126 { | |
127 return cur; | |
128 } |