}\r
\r
final NyARLabelingLabelStack stack = limage.getLabelStack();\r
- final NyARLabelingLabel[] labels = stack.getArray();\r
+ final NyARLabelingLabel[] labels = (NyARLabelingLabel[])stack.getArray();\r
\r
\r
// ラベルを大きい順に整列\r
}\r
}\r
\r
- public NyARSquare[] getArray()\r
- {\r
- return (NyARSquare[]) this._items;\r
- }\r
- public NyARSquare getItem(int i_index)\r
- {\r
- return (NyARSquare) this._items[i_index];\r
- }\r
-\r
public NyARSquare prePush() throws NyARException\r
{\r
return (NyARSquare) super.prePush();\r
{\r
final int[] xdir = this._getContour_xdir;// static int xdir[8] = { 0,1, 1, 1, 0,-1,-1,-1};\r
final int[] ydir = this._getContour_ydir;// static int ydir[8] = {-1,-1,0, 1, 1, 1, 0,-1};\r
- final NyARLabelingLabel label=this._label_list.getItem(i_index); \r
+ final NyARLabelingLabel label=(NyARLabelingLabel)this._label_list.getItem(i_index); \r
int i;\r
//クリップ領域の上端に接しているポイントを得る。\r
int sx=getTopClipTangentX(label);\r
i_buffer[i] = new NyARLabelingLabel();\r
}\r
}\r
- public NyARLabelingLabel[] getArray()\r
- {\r
- return (NyARLabelingLabel[]) this._items;\r
- }\r
- public NyARLabelingLabel getItem(int i_index)\r
- {\r
- return (NyARLabelingLabel)this._items[i_index];\r
- }\r
+\r
public NyARLabelingLabel prePush() throws NyARException\r
{\r
return (NyARLabelingLabel) super.prePush();\r
\r
// エリアと重心、クリップ領域を計算\r
NyARLabelingLabel label_pt;\r
- NyARLabelingLabel[] labels = label_list.getArray();\r
+ NyARLabelingLabel[] labels = (NyARLabelingLabel[])label_list.getArray();\r
for (i = 0; i < wlabel_num; i++) {\r
label_pt =labels[i];\r
label_pt.id =i+1;\r
}\r
}\r
\r
- public NyARIntPoint[] getArray()\r
- {\r
- return (NyARIntPoint[]) this._items;\r
- }\r
\r
public NyARIntPoint prePush() throws NyARException\r
{\r
}\r
}\r
\r
- public NyARIntRect[] getArray()\r
- {\r
- return (NyARIntRect[]) this._items;\r
- }\r
\r
public NyARIntRect prePush() throws NyARException\r
{\r
// ラベルバッファを予約\r
i_stack.reserv(i_number_of_label);\r
// エリアと重心、クリップ領域を計算\r
- final NyARLabelingLabel[] labels = i_stack.getArray();\r
+ final NyARLabelingLabel[] labels = (NyARLabelingLabel[])i_stack.getArray();\r
for (int i = 0; i < i_number_of_label; i++) {\r
final int[] temp_ptr = temp[i];\r
temp_ptr[0]=0;//area\r
\r
// 1スクエア毎に、一致するコードを決定していく\r
for (int i = 0; i < number_of_square; i++) {\r
- NyARSquare square = l_square_list.getItem(i);\r
+ NyARSquare square = (NyARSquare)l_square_list.getItem(i);\r
// 評価基準になるパターンをイメージから切り出す\r
if (!this._patt.pickFromRaster(i_raster, square)) {\r
// イメージの切り出しは失敗することもある。\r
}\r
\r
// 評価基準になるパターンをイメージから切り出す\r
- if (!this._patt.pickFromRaster(i_raster, l_square_list.getItem(0))) {\r
+ if (!this._patt.pickFromRaster(i_raster, (NyARSquare)l_square_list.getItem(0))) {\r
// パターンの切り出しに失敗\r
return false;\r
}\r
double confidence = this._match_patt.getConfidence();\r
for (int i = 1; i < number_of_square; i++) {\r
// 次のパターンを取得\r
- this._patt.pickFromRaster(i_raster, l_square_list.getItem(i));\r
+ this._patt.pickFromRaster(i_raster, (NyARSquare)l_square_list.getItem(i));\r
// 評価器にセットする。\r
this._match_patt.setPatt(this._patt);\r
// コードと比較する\r
confidence = c2;\r
}\r
// マーカー情報を保存\r
- this._detected_square = l_square_list.getItem(square_index);\r
+ this._detected_square = (NyARSquare)l_square_list.getItem(square_index);\r
this._detected_direction = direction;\r
this._detected_confidence = confidence;\r
return true;\r
* 見かけ上の要素数を1減らして、最後尾のアイテムを返します。\r
* @return\r
*/\r
- public Object pop() throws NyARException\r
+ public final Object pop() throws NyARException\r
{\r
if(this._length<1){\r
throw new NyARException();\r
return;\r
}\r
\r
+\r
+\r
+ /**\r
+ * この関数を継承先クラスで実装して下さい。\r
+ * i_bufferの配列の、i_start番目からi_end-1番目までの要素に、オブジェクトを割り当てて下さい。\r
+ * \r
+ * @param i_start\r
+ * @param i_end\r
+ * @param i_buffer\r
+ */\r
+ protected abstract void onReservRequest(int i_start, int i_end, Object[] i_buffer);\r
/**\r
* 配列を返します。\r
* \r
* @return\r
*/\r
- protected Object[] getArray()\r
+ public final Object[] getArray()\r
{\r
return this._items;\r
}\r
- protected Object getItem(int i_index)\r
+ public final Object getItem(int i_index)\r
{\r
return this._items[i_index];\r
}\r
-\r
- /**\r
- * この関数を継承先クラスで実装して下さい。\r
- * i_bufferの配列の、i_start番目からi_end-1番目までの要素に、オブジェクトを割り当てて下さい。\r
- * \r
- * @param i_start\r
- * @param i_end\r
- * @param i_buffer\r
- */\r
- protected abstract void onReservRequest(int i_start, int i_end, Object[] i_buffer);\r
-\r
/**\r
* 配列の見かけ上の要素数を返却します。\r
* @return\r
public void overlayData(NyARIntPointStack i_stack)\r
{\r
int count = i_stack.getLength();\r
- NyARIntPoint[] items = i_stack.getArray();\r
+ NyARIntPoint[] items = (NyARIntPoint[])i_stack.getArray();\r
Graphics g = this.getGraphics();\r
for (int i = 0; i < count; i++) {\r
int x = items[i].x;\r
{\r
Color[] c=new Color[]{Color.cyan,Color.red,Color.green};\r
int count = i_stack.getLength();\r
- NyARIntRect[] items = i_stack.getArray();\r
+ NyARIntRect[] items = (NyARIntRect[])i_stack.getArray();\r
Graphics g = this.getGraphics();\r
for (int i = 0; i < count; i++) {\r
int x = items[i].x;\r