1 package jp.nyatla.nyartoolkit.core.labeling;
\r
3 import jp.nyatla.nyartoolkit.NyARException;
\r
9 public class NyLabelingLabelList
\r
11 private final static int ARRAY_APPEND_STEP=128;
\r
12 private final static int ARRAY_MAX=1024*16;
\r
13 private final NyLabelingLabel[] _labels;
\r
14 private int _allocated_size;
\r
15 private int _length;
\r
17 * 最大ARRAY_MAX個の動的割り当てバッファを準備する。
\r
18 * @param i_holder_size
\r
20 public NyLabelingLabelList()
\r
23 this._labels=new NyLabelingLabel[ARRAY_MAX];
\r
25 this._allocated_size=0;
\r
29 * i_indexで指定した番号までのバッファを準備する。
\r
32 public final void reserv(int i_index) throws NyARException
\r
35 if(this._allocated_size>i_index){
\r
39 if(i_index>=this._labels.length){
\r
40 throw new NyARException();
\r
43 int range=i_index+ARRAY_APPEND_STEP;
\r
44 if(range>=this._labels.length){
\r
45 range=this._labels.length;
\r
48 for(int i=this._allocated_size;i<range;i++)
\r
50 this._labels[i]=new NyLabelingLabel();
\r
52 this._allocated_size=range;
\r
54 public final NyLabelingLabel[] getArray()
\r
56 return this._labels;
\r
59 * 動的配列の見かけ上の要素数を設定する。
\r
61 public final void setLength(int i_length)
\r
63 this._length=i_length;
\r
66 public final int getCount()
\r
68 return this._length;
\r