Iterator$B%Q%?!<%s(b

$B:n@.(B:2004$BG/(B4$B7n(B1$BF|(B

$B5HED@?0l$N%[!<%`%z!<%8(b > $B%=%U%H%&%'%"9)3X(B > $B5;=Q%3%i%`(B > $B%G%6%$%s%Q%?!<%s(b

Iterator$B%Q%?!<%s$o!"=89g$nmwag$k=g$k(b1$b$d$:$d%"%/%;%9$9$k;~$n%q%?!<%s$g$"$k!#(b

$BL\
  1. $B!V%G%6%$%s%Q%?!<%sf~lg!w$nnc$k$d$$$f(b
  2. Iterator$B%Q%?!<%s$r;h$o$j$$=89g$n%/%i%9(b
  3. Iterator$B%Q%?!<%s$r;h$&$y$-%1!<%9(b
    1. getAt$B%a%=%C%I$Nl9g(B
    2. $BItJ,=89g$r:n$k>l9g(B
  4. Iterator$Be$NLdBj(B
  5. PIXY$B%7%9%F%`(B2$B$G$N!"(BIterator$B%Q%?!<%s$n;hmqnc(b
    1. CatalogDBAccessor
    2. CatalogReader

$B!V%G%6%$%s%Q%?!<%sf~lg!w$nnc$k$d$$$f(b

Iterator$B%Q%?!<%s$k$d$$$f!"2<5-$nk\(b($b0j2

Java$B8@8l$G3X$V%G%6%$%s%Q%?!<%sf~lg(b

$B7k>k9@Cx(B

$B%=%U%H%P%s%/%Q%V%j%C%7%s%03t<02q

$B$Ge$2$i$l$F$$$kNc$O!"(BIterator$B%Q%?!<%s$r;h$&%1!<%9$g$o$j$$$h$&$k;w$&!#(b

$B!V%G%6%$%s%Q%?!<%sf~lg!w$g$o!"k\$n=89g$ri=$9(bbookshelf$b%/%i%9$r:n$c$f$$$k!#$3$n%/%i%9$o!"2<5-$n%a%=%c%i$r;}$d!#(b

int getLength ( )

$BK\$N:}?t$rJV$9!#(B

Book getBookAt ( int index )

index$BHVL\$NK\$rJV$9!#(B

$B$3$l$i$N%a%=%C%I$,$"$l$P!"

BookShelf book_shelf;
$B!A!A!A!A!A!A!A!A!A!A!A(B
int length = book_shelf.getLength();
for (int i = 0 ; i < length ; i++) {
 Book book = book_shelf.getBookAt(i);
 :
}
 

$B$7$+$7!"!V%G%6%$%s%Q%?!<%sf~lg!w$g$o!"$o$6$o$6(biterator$b%q%?!<%s$r;h$c$f!")$7$F$$$k!#(B

BookShelf book_shelf;
$B!A!A!A!A!A!A!A!A!A!A!A(B
Iterator it = book_shelf.iterator();
while (it.hasNext()) {
 Book book = it.next();
 :
}
 

$B!V%G%6%$%s%Q%?!<%sf~lg!w$g$o!"(bfor$b%k!<%w$g$j$/!"(biterator$b%q%?!<%s$r;h$&$3$h$g!"

  • BookShelf$B%/%i%9$N

BookShelf$B%/%i%9$Nu$NG[Ns$G$O$J$/!"(BVector$B$r;H$&$h$&$K$7$F$b!"(BBookShelf$B%/%i%9$rMxMQ$9$kB&$OJQ99$7$J$/$F:Q$`!#(B

$B$3$l$O!"@5$7$/$J$$$h$&$K;W$&!#(B

BookShelf$B%/%i%9$rMxMQ$9$kB&$O!"2<5-$n(b2$b$d$n%a%=%c%i$+$i@.$k!"(bbookshelf$b%/%i%9$n%$%s%?!<%u%'!<%9$r8+$f$$$k!#(bfor$b%k!<%w$r;h$&>l9g$G$b!"(BBookShelf$B%/%i%9$N

int getLength ( )

$BK\$N:}?t$rJV$9!#(B

Book getBookAt ( int index )

index$BHVL\$NK\$rJV$9!#(B

$B2>$K!"(BBookShelf$B%/%i%9$Ne5-$N(B2$B$D$N%a%=%C%I$,F1$8$h$&$K5!G=$9$k$N$G$"$l$P!"(Bfor$B%k!<%w$g$"$c$f$b!"8f$s=p$7b&$ojq99$9$ki,mw$ol5$$!#(b

BookShelf$B%/%i%9$K!">e5-$N(B2$B$D$N%a%=%C%I$r;}$?$;$F$$$?!"$H$$$&$3$H$O!"85!9!"(BBookShelf$B%/%i%9$rMxMQ$9$k;~$K!"(Bfor$B%k!<%w$r;h$c$f$bni$$!"$h@k8@$7$f$$$?$h$&$j$b$n$g$"$k!#$3$l$i$n%a%=%c%i$rmq0u$7$?;~e@$g!"(bbookshelf$b%/%i%9$o!"(biterator$b%q%?!<%s$re,mq$9$y$-%1!<%9$g$o$j$/$j$c$f$$$k$h;w$&!#(b

Iterator$B%Q%?!<%s$r;h$o$j$$=89g$n%/%i%9(b

$BA0=R$N(BBookShelf$B%/%i%9$b$=$&$@$,!"(BIterator$B%Q%?!<%s$r;h$o$j$$=89g$n%/%i%9$g$o!"8d?t$rjv$9(bsize$b%a%=%c%i$h!";xdj$7$?0lcv$nmwag$rjv$9(bgetat$b%a%=%c%i$h$$$&!"(b2$b$d$n%a%=%c%i$rmq0u$9$k$n$,$u$d$&$@!#$3$l$i$n%a%=%c%i$o!"0el[$nn;2r$h$7$f!"0j2<$n$h$&$j>r7o$rK~$?$9$3$H$,K>$^$7$$!#(B

size

$B

getAt

$BG$0U$NMWAG$KBP$7$F!"0lDj;~4V$G%"%/%;%9$G$-$k$h$&$K$9$Y$-!#(B

$BNc$($P!"=89g$NMWAG$K%"%/%;%9$9$kB&$G$O!"

FooSet set;
$B!A!A!A!A!A!A!A!A!A!A!A!A!A!A(B
for (int i = 0 ; i < set.size() ; i++) {
 Foo foo = set.getAt(i);
 :
}
 

$B$3$N;~!"(Bsize$B%a%=%C%I$OMWAG$N8D?tJ,$@$17+$jJV$7

int size = set.size();
for (int i = 0 ; i < size ; i++) {
 Foo foo = set.getAt(i);
 :
}
 

$B$^$?!"(BgetAt$B%a%=%C%I$O!"2?HVL\$NMWAG$G$"$C$F$b!"0lDj$N;~4V$G

class FooSet {
private:
 CObList m_list;
public:
 Foo* getAt ( int index ) {
 POSITION position = m_list.GetHeadPosition();
 int i = 0;
 while (position) {
 Foo* foo = (Foo*)m_list.GetNext(position);
 if (i == index)
 return foo;
 i++;
 }
 }
};
 

getAt$B%a%=%C%I$O!"3N$+$K;XDj$5$l$?0LCV$NMWAG$rJV$9$N$@$,!"A4$F$NMWAG$K%"%/%;%9$9$k=hM}$,Fs=E%k!<%w$k$j$k$?$a!";ve!";H$$$b$N$K$J$i$J$$!#(B

$B=89g$N%/%i%9$G$O!"$3$l$i$NE@$KCm0U$7$F!"

$B5U$K!"8D?t$rJV$9(Bsize$B%a%=%C%I$H!";XDj$7$?0LCV$NMWAG$rJV$9(BgetAt$B%a%=%C%I$,!"=89g%/%i%9$KDj5A$G$-$k$N$G$"$l$P!"8F$S=P$7B&$G$O(Bfor$B%k!<%w$r;h$($pni$$!#$o$6$o$6(biterator$b%q%?!<%s$r;h$&i,mw$ol5$$!#(b

Iterator$B%Q%?!<%s$r;h$&$y$-%1!<%9(b

getAt$B%a%=%C%I$Nl9g(B

Iterator$B%Q%?!<%s$r;h$&$y$-$j$n$o!"(bgetat$b%a%=%c%i$n

$B!V%G%6%$%s%Q%?!<%sf~lg!w$k9g$o$;$f!"k\$nnc$r<($=$&!#?t==k|:}$nk\$r;}$d?^=q4[%g!<%?%y!<%9$r9m$($k!#$3$3$g!"%f!<%6$,$"$k>r7o$GK\$r8!:w$7$?$H$7$h$&!#Nc$($P!"Cx

$B8!:w$5$l$?K\$N%$%s%9%?%s%9$r$9$Y$F@8@.$7$F$+$i!"$=$N=89g$r0lEY$KJV$9!"$H$$$&;EMM$G$bNI$$$N$G$"$l$P!"(BIterator$B%Q%?!<%s$r;h$&i,mw$o$j$$!#$7$+$7!"$3$n;emm$k$o!"

  • $B$9$Y$F$N7k2L$,B7$&$^$G!"7k2L$,JV$5$l$J$$!#:G0-$N>l9g!"?t==K|:}$NK\$N>H9g$,$9$Y$F40N;$9$k$^$G!"?t;~4V$+$+$k2DG=@-$b$"$k!#(B
  • $B8!:w$5$l$?K\$N:}?t$,B?$$>l9g!"JV$5$l$k7k2L$,5pBg$K$J$k!#:G0-$N>l9g!"%a%b%j>e$K<}$^$i$j$$2dg=@-$b$"$k!#(b

$B$3$N$h$&$J%1!<%9$g$o!"(biterator$b%q%?!<%s$r;h$&$y$-$g$"$k!#8!:w7k2l$h$7$f!"k\$n=89g$g$o$j$/!"(biterator$b$rjv$9$n$@!#(b

$B$3$&$9$l$P!"8!:w%\%?%s$r2!$7$?D>8e$K!"%f!<%6$k7k2l$rjv$9$3$h$b$g$-$k!#%f!<%6$,8!:w$5$l$?k\$r(b1$b$d$:$d%a%'%c%/$7$f$$$k4v$k!"%p%c%/%0%i%&%s%i$g

$B$^$?!"?^=q4[%G!<%?%y!<%9$,%j%b!<%h$k$"$k>l9g$O!"%G!<%?e>AwNL$r:G>.8B$KM^$($i$l$k!"$H$$$&8z2L$b$"$k!#8!:w$G?t@i:}$NK\$,%R%C%H$7$?$H$7$F$b!"%f!<%6$,(b3$b:}l\$gl\e*$nk\$r8+$d$1$f$7$^$($p!"e>Aw$5$l$kK\$N>pJs$O(B3$B:}J,$@$1$G:Q$`!#(B

$B$3$NB>$K$b!"(BIterator$B%Q%?!<%s$r;h$&$y$-%1!<%9$o$?$/$5$s$"$k!#nc$($p!"2<5-$n$h$&$j%1!<%9$g$"$k!#(b

  • $B%F%-%9%H%U%!%$%k$NFbMF$r!"@hF,$+$i(B1$B9T$:$Dl9g!#(B
  • C$B8@8l$N%=!<%9%3!<%i$r9=j82r@o$7$f!"%h!<%/%s$r(b1$b$d$:$djv$9>l9g!#(B

$BItJ,=89g$r:n$k>l9g(B

$BItJ,=89g$r:n$k>l9g$b!"(BIterator$B%Q%?!<%s$r;h$&$3$h$,$"$k!#(b

$B!V%G%6%$%s%Q%?!<%sf~lg!w$g$o!"k\$n=89g$ri=$9(bbookshelf$b%/%i%9$r:n$c$?!#$3$3$g!"$9$y$f$nk\$ncf$+$i!"nc$($pcx

$BCx

$B=89g$rI=$9%/%i%9$,!"C1$J$k%G!<%?$n=89g$g$o$j$/!"%g!<%?4im}$k4x$o$k5!g=$r;}$c$f$$$k>l9g$O!"(BIterator$B%Q%?!<%s$r;h$c$?j}$,ni$$!#(b

$BNc$($P!"(BBookShelf$B%/%i%9$K!"

Save

$B%^%9%?!<%u%!%$%k$k!"k\$n>pJs$r=q$-9~$`!#(B

$B$3$N>l9g!"Cx

$B8!:w$7$?7k2L$KBP$7$F$O!"K\$N>pJs$r;2>H$9$k$3$H$7$+$5$;$J$$!"$H$$$&0U?^$r<($9$?$a$k!"8!:w7k2l$o(bbookshelf$b%/%i%9$g$o$j$/!"(biterator$b$h$7$fjv$9$h$&$k$9$k$n$g$"$k!#(b

Iterator$Be$NLdBj(B

Iterator$B$re$G$O!"=89g$KBP$9$kMWAG$NDI2C(B/$B:o=|$H$N7s$M9g$$$,LdBj$H$J$k!#(B

C++$B$G9M$($k$H!"Nc$($P!"Cx

  • $B%^%9%?!<$g$"$k(bbookshelf$b%/%i%9$ncf$g$n!"(bbook$b%$%s%9%?%s%9$n0lcv(b($b2?hvl\$nmwag$+(b)$b$r;}$d!#(b
  • $B%^%9%?!<$g$"$k(bbookshelf$b%/%i%9$,;}$c$f$$$k(bbook$b%$%s%9%?%s%9$x$n%]%$%s%?$r;}$d!#(b

$B%$%s%9%?%s%9$N0LCV$r;}$DJ}K!$G$O!"8!:w$r)$5$l$J$$!#(B

$B%]%$%s%?$r;}$DJ}K!$G$b!"8!:w$rH$7$h$&$H$7$?;~$K!"

$B8!:w$7$?;~$K!"(BBook$B%$%s%9%?%s%9$r%3%T!<$7!"(biterator$b<+?h$b(bbook$b%$%s%9%?%s%9$r;}$d$h$&$k$9$l$p!"$3$nldbj$r2shr$g$-$k!#$7$+$7!"%a%b%j$rl5bl$k>CHq$9$k7k2L$H$J$k!#%G!<%?%5%$%:ey$k$h$c$f!"it2dg=$j>l9g$bB?$$!#(B

Java$B$N>l9g$O(Bgarbage collector$B$N;EAH$_$,$"$k$N$G!"LdBj$,L5$$!#(BC++$B$G$bF1MM$K!"(BBook$B%/%i%9$K;2>H%+%&%s%?$r@_$1!"(Bgarbage collection$B$r9T$&!"$H$$$&J}K!$b9M$($i$l$k!#(B

PIXY$B%7%9%F%`(B2$B$G$N!"(BIterator$B%Q%?!<%s$n;hmqnc(b

CatalogDBAccessor

$B@V7P@V0^$HHO0O$r;XDj$7$F!"HO0OFb$KB8:_$9$kE7BN%G!<%?$r%g!<%?%y!<%9$+$i8!:w$7$?;~$kjv$5$l$k(biterator$b$g$"$k!#(b

CatalogDBAccessor$B%/%i%9$O!"

CatalogDBManager manager;
$B!A!A!A!A!A!A!A!A!A!A!A!A!A(B
// $B8!:wHO0O(B
Coor coor = new Coor(0.0, 0.0);
double radius = 1.0;
// $B8!:w(B
CatalogDBAccessor accessor = manager.getAccessor(coor, radius);
// $B8!:w7k2L$NI=<($j$i(b
CatalogStar star = accessor.getFirstElement();
while (star != null) {
 :
 star = accessor.getNextElement();
}
 

PIXY$B%7%9%F%`(B2$B$N%G!<%?%y!<%9%"%/%;%9$g$o!"b?$/$n(biterator$b%/%i%9$,;hmq$5$l$f$$$k!#(b

CatalogDBAccessor

$BF1DjMQ%+%?%m%0%G!<%?%y!<%9$ncf$+$i8!:w$7$?e7bn%g!<%?$r!"=g

CelestialDivisionMapAccessor

$BE76u$r%a%C%7%e>u$KJ,3d$7!"$=$N$&$A!"M-8z$K$J$C$F$$$kItJ,$N!"%G!<%?%y!<%9fb$n>l=j(B($B%U%)%k%@3,AX(B)$B$r!"=g

CelestialDivisionMapDBAccessor

$BE76u$r%a%C%7%e>u$KJ,3d$7!"$=$N$&$A!"M-8z$K$J$C$F$$$kItJ,$N!"%G!<%?%y!<%9$k5-o?$5$l$f$$$k(bxml$bmwag$r!"=g

InformationDBAccessor

$B2hA|>pJs%G!<%?%y!<%9$ncf$+$i8!:w$7$?2ha|>pJs%G!<%?$r!"=g

XmlDBAccessor

$B%G!<%?%y!<%9fb$n$"$k>l=j$KB8:_$9$kMWAG$r!"=g

XmlDBFileAccessor

$B%G%#%9%/>e$K9=C[$5$l$?%G!<%?%y!<%9fb$n$"$k>l=j(B($B%U%)%k%@(B)$B$KB8:_$9$k(BXML$B%U%!%$%k$K4^$^$l$F$$$kMWAG$r!"=g

XmlDBMemoryAccessor

$B%a%b%j>e$K9=C[$5$l$?%G!<%?%y!<%9fb$n$"$k>l=j$KB8:_$9$kMWAG$r!"=g

$B$3$l$i$N(BIterator$B%/%i%9$N4X78$O!"

Iterator$B%/%i%9$N4X78(B

$B?^$K<($9$h$&$k!"%g!<%?%y!<%9$n%q%c%1!<%8$k$o!"$$$/$d$+$n%^%m!<%8%c%/%i%9$,$"$k!#(b

PIXY$B%7%9%F%`(B2$B$O!"!V2hA|>pJs%G!<%?%y!<%9!w!vf1djmq%+%?%m%0%g!<%?%y!<%9!w!v8wey%g!<%?%y!<%9!w$h$$$&!"(b3$b$d$n%g!<%?%y!<%9$r;}$d!#$=$l$>$l$KBP1~$9$k%^%M!<%8%c$n%/%i%9$,!"(binformationdbmanager, CatalogDBManager, MagnitudeDBManager $B$G$"$k!#(B

3$B$D$N%G!<%?%y!<%9$ncf?h$o!"6&dl$n7a<0$r:nmq$7$f$$$k!#$=$n6&dl$n7a<0$k4p$e$$$?%"%/%;%9$r;j$k$n$,!"(bprimitivemanager$b%/%i%9$g$"$k!#>e5-$N(B3$B$D$N%^%M!<%8%c$o!"fbit$g$3$n%/%i%9$r;hmq$7$f$$$k!#c"$7!"$3$n%/%i%9$ocj>]%/%i%9$G$"$k!#(B

$B%G!<%?%y!<%9$o!"%g%#%9%/>e$K9=C[$9$k$3$H$b!"%a%b%j>e$K9=C[$9$k$3$H$b$G$-$k$h$&$K$J$C$F$$$k!#%G%#%9%/>e$K9=C[$7$?%G!<%?%y!<%9$r07$&$n$,(bprimitivefilemanager$b%/%i%9!"%a%b%j>e$K9=C[$7$?%G!<%?%y!<%9$r07$&$n$,(bprimitivememorymanager$b%/%i%9$g$"$k!#$i$a$i$b!"(bprimitivemanager$b%/%i%9$n%5%v%/%i%9$g$"$k!#(b

CatalogReader

$BE7BN%+%?%m%0$rFI$_9~$_!"E7BN%G!<%?$r=g$k(b1$b$d$:$d

PIXY$B%7%9%F%`(B2$B$G%5%]!<%h$7$f$$$ke7bn%+%?%m%0(b$B$K$O!"$5$^$6$^$J7ABV$N$b$N$,$"$k!#>.$5$$$b$N$G$O!"$o$:$+?t9T$N%F%-%9%H%U%!%$%k$N$b$N$b$"$k$7!"Bg$-$$$b$N$G$O!"?t%.%,%P%$%H$b$N%G!<%?$,!"j#?t$n%u%!%$%k$kj,3d$5$l$f5-o?$5$l$f$$$k$b$n$b$"$k!#(b

$B$$$+$J$k]%/%i%9$N(BCatalogReader$B$G$"$k!#(B

CatalogReader$B%/%i%9$O!"2<5-$n$h$&$j%$%s%?!<%u%'!<%9$r;}$d!#(b

void open ( )

$BE7BN%+%?%m%0$r3+$/!#$3$N>l9g!"$9$Y$F$NE7BN%G!<%?$r

void open ( Coor coor, double fov )

$B@V7P@V0^$HHO0O$r;XDj$7$F!"E7BN%+%?%m%0$r3+$/!#$3$N>l9g!"%+%?%m%0$K5-O?$5$l$F$$$kE7BN$N$&$A!"HO0OFb$N$b$N$@$1$r

CatalogStar readNext()

$BE7BN%G!<%?$r(b1$b$d

$B$3$N%$%s%?!<%u%'!<%9$k9gcw$9$k$b$n$g$"$l$p!"$$$+$j$k$b$n$g$"$c$f$b!"e7bn%+%?%m%0$h$7$f!"(bpixy$b%7%9%f%`(b2$b$ofi$_9~$`$3$h$,$g$-$k!#nc$($p!"%a%b%j>e$K(BVector$B$G;}$C$F$$$k$$$/$D$+$NE7BN%G!<%?$n=89g$d!"$i$3$+$n(bwww$b%z!<%8$j$i!"%u%!%$%k$h$7$fj]b8$5$l$f$$$j$/$f$bni$$!#(b

$BE7BN%+%?%m%0$,J#?t$N%U%!%$%k$KJ,3d$5$l$F$$$l$P!"E7BN%G!<%?$r(b1$b$d$:$dfi$s$g$$$/escf$g!"%u%!%$%k$r@z$j49$($ki,mw$,$"$k!#$^$?!"e7bn%+%?%m%0$ncf$k$o!"e7bn%g!<%?$,$&$^$/@0ns$5$l$f$*$j!";xdj$7$?ho0o30$n%g!<%?$nitj,$o%9%-%c%w$9$k$3$h$g!"8zn(ni$/i,mw$j%g!<%?$@$1$rl9g$O!"$&$^$/(BCatalogReader$B$N%5%V%/%i%9$r$^$7$$!#$@$,!"$3$&$$$C$?$3$H$O!"(BCatalogReader$B$rMxMQ$9$kB&$G$O$^$C$?$/4XCN$7$J$$!#

Copyright(C) Seiichi Yoshida ( comet@aerith.net ). All rights reserved.

$B%[!<%`(b

$BE7J8(B

$B%=%U%H%&%'%"9)3X(B

$B5;=Q%3%i%`(B

$B%=%U%H%&%'%"(B

$B8&5f3hF0(B

AltStyle $B$K$h$C$FJQ49$5$l$?%Z!<%8(b (->$B%*%j%8%J%k(B) /