28
28
29
29
30
30
31
+ import java .io .InputStream ;
31
32
import java .util .ArrayList ;
32
33
33
34
import jp .nyatla .nyar4psg .utils .NyARPsgBaseClass ;
@@ -86,6 +87,22 @@ private MultiNft(PApplet i_applet,NyARParam i_param,NyAR4PsgConfig i_config)
86
87
new SingleCameraView (i_applet ,i_param ,i_config ._ps_patch_version ),
87
88
i_config ._coordinate_system );
88
89
}
90
+ /**
91
+ * コンストラクタです。カメラパラメータを{@link InputStream}から読みだしてインスタンスを生成します。
92
+ * @param parent
93
+ * 親となるAppletオブジェクトを指定します。
94
+ * @param i_width
95
+ * 入力画像の横解像度を指定します。通常、キャプチャ画像のサイズを指定します。
96
+ * @param i_height
97
+ * 入力画像の横解像度を指定します。通常、キャプチャ画像のサイズを指定します。
98
+ * @param i_cparam_is
99
+ * ARToolKitフォーマットのカメラパラメータファイルを読み出す{@link InputStream}です。
100
+ * @param i_config
101
+ */
102
+ public MultiNft (PApplet parent , int i_width ,int i_height ,InputStream i_cparam_is ,NyAR4PsgConfig i_config )
103
+ {
104
+ this (parent ,NyARParam .loadFromARParamFile (i_cparam_is ,i_width ,i_height ),i_config );
105
+ }
89
106
90
107
/**
91
108
* コンストラクタです。
@@ -99,27 +116,22 @@ private MultiNft(PApplet i_applet,NyARParam i_param,NyAR4PsgConfig i_config)
99
116
* 入力画像の横解像度を指定します。通常、キャプチャ画像のサイズを指定します。
100
117
* @param i_config
101
118
* コンフィギュレーションオブジェクトを指定します。
102
- * @throws NyARRuntimeException
103
119
*/
104
120
public MultiNft (PApplet parent , int i_width ,int i_height ,String i_cparam_file ,NyAR4PsgConfig i_config )
105
121
{
106
- this (
107
- parent ,
108
- NyARParam .loadFromARParamFile (parent .createInput (i_cparam_file ),
109
- i_width ,i_height ),i_config );
122
+ this (parent ,i_width ,i_height ,parent .createInput (i_cparam_file ),i_config );
110
123
}
111
124
/**
112
125
* コンストラクタです。
113
126
* {@link MultiNft#MultiNft(PApplet, int, int, String, NyAR4PsgConfig)}のコンフィギュレーションに、{@link NyAR4PsgConfig#CONFIG_DEFAULT}を指定した物と同じです。
114
127
* @param parent
115
- * {@link MultiNft#MultiNft(PApplet, int, int, String, NyAR4PsgConfig)}を参照 。
128
+ * 親となるAppletオブジェクトを指定します 。
116
129
* @param i_width
117
130
* 入力画像の横解像度を指定します。通常、キャプチャ画像のサイズを指定します。
118
131
* @param i_height
119
132
* 入力画像の横解像度を指定します。通常、キャプチャ画像のサイズを指定します。
120
133
* @param i_cparam_file
121
- * {@link MultiNft#MultiNft(PApplet, int, int, String, NyAR4PsgConfig)}を参照。
122
- * @throws NyARRuntimeException
134
+ * ARToolKitフォーマットのカメラパラメータファイルの名前を指定します。
123
135
*/
124
136
public MultiNft (PApplet parent ,int i_width ,int i_height ,String i_cparam_file )
125
137
{
@@ -267,6 +279,49 @@ public void detect(PImageSensor i_source_image)
267
279
{
268
280
this ._ns .update (i_source_image );
269
281
}
282
+ private int addNftTarget (NyARNftDataSet i_dataset )
283
+ {
284
+ //初期化済みのアイテムを生成
285
+ int psid =-1 ;
286
+ try {
287
+ this ._id_map .add (this ._ns .addNftTarget (i_dataset ));
288
+ psid =this ._id_map .size ()-1 ;
289
+ }catch (Exception e ){
290
+ e .printStackTrace ();
291
+ this ._ref_papplet .die ("Catch an exception!" );
292
+ }
293
+ return psid ;
294
+ }
295
+
296
+ /**
297
+ * この関数は、NFTファイルセットを{@link InputStream}から読みだして、NFTターゲットを生成して登録します。
298
+ * 同じターゲットを複数個登録することはできません。
299
+ * @param i_iset_is
300
+ * isetファイルを読み出す{@link InputStream}
301
+ * @param i_fset_is
302
+ * fsetファイルを読み出す{@link InputStream}
303
+ * @param i_fset3_is
304
+ * fset3ファイルを読み出す{@link InputStream}
305
+ * @param i_page_no
306
+ * fset3のページ番号を指定します。
307
+ * @param i_target_width
308
+ * NFTパターンの横幅をmm単位で指定します。
309
+ * @return
310
+ * 0から始まるマーカーIDを返します。
311
+ * この数値は、マーカを区別するためのId値です。0から始まり、{@link #addNftTarget}関数を呼ぶたびにインクリメントされます。
312
+ * {@link #getMatrix},{@link #isExistTarget},{@link #addNftTarget},
313
+ * {@link #screen2CoordSystem},{@link #pickupTargetImage},{@link #pickupRectTargetImage}
314
+ * のid値に使います。
315
+ */
316
+ public int addNftTarget (InputStream i_iset_is ,InputStream i_fset_is ,InputStream i_fset3_is ,int i_page_no ,float i_target_width )
317
+ {
318
+ return this .addNftTarget (
319
+ NyARNftDataSet .loadFromNftFiles (
320
+ i_iset_is ,i_fset_is ,i_fset3_is ,i_page_no ,
321
+ Float .isNaN (i_target_width )?Double .NaN :i_target_width ));
322
+ }
323
+
324
+
270
325
/**
271
326
* この関数は、NFTファイルセットからNFTターゲットを生成して登録します。
272
327
* 同じターゲットを複数個登録することはできません。
@@ -286,20 +341,11 @@ public void detect(PImageSensor i_source_image)
286
341
*/
287
342
public int addNftTarget (String i_file_name_prefix ,int i_page_no ,float i_target_width )
288
343
{
289
- //初期化済みのアイテムを生成
290
- int psid =-1 ;
291
- try {
292
- this ._id_map .add (this ._ns .addNftTarget (NyARNftDataSet .loadFromNftFiles (
293
- this ._ref_papplet .createInput (i_file_name_prefix +".iset" ),
294
- this ._ref_papplet .createInput (i_file_name_prefix +".fset" ),
295
- this ._ref_papplet .createInput (i_file_name_prefix +".fset3" ),i_page_no ,
296
- Float .isNaN (i_target_width )?Double .NaN :i_target_width )));
297
- psid =this ._id_map .size ()-1 ;
298
- }catch (Exception e ){
299
- e .printStackTrace ();
300
- this ._ref_papplet .die ("Catch an exception!" );
301
- }
302
- return psid ;
344
+ return this .addNftTarget (
345
+ this ._ref_papplet .createInput (i_file_name_prefix +".iset" ),
346
+ this ._ref_papplet .createInput (i_file_name_prefix +".fset" ),
347
+ this ._ref_papplet .createInput (i_file_name_prefix +".fset3" ),i_page_no ,
348
+ i_target_width );
303
349
}
304
350
305
351
@@ -329,7 +375,24 @@ public int addNftTarget(String i_file_name_prefix)
329
375
{
330
376
return this .addNftTarget (i_file_name_prefix ,Float .NaN );
331
377
}
332
-
378
+ /**
379
+ * この関数は、NFTデータセットを{@link InputStream}から読みだして、NFTターゲットを登録します。
380
+ * 同じターゲットを複数個登録することはできません。
381
+ * @param i_isetdataset
382
+ * nftdatasetファイルを読み出す{@link InputStream}です。
383
+ * @param i_target_width
384
+ * NFTパターンの横幅をmm単位で指定します。
385
+ * @return
386
+ * 0から始まるマーカーIDを返します。
387
+ * この数値は、マーカを区別するためのId値です。0から始まり、{@link #addNftTarget}関数を呼ぶたびにインクリメントされます。
388
+ * {@link #getMatrix},{@link #isExistTarget},{@link #addNftTarget},
389
+ * {@link #screen2CoordSystem},{@link #pickupTargetImage},{@link #pickupRectTargetImage}
390
+ * のid値に使います。
391
+ */
392
+ public int addNftTarget (InputStream i_isetdataset ,int i_page_no ,float i_target_width )
393
+ {
394
+ return this .addNftTarget (NyARNftDataSet .loadFromNftDataSet (i_isetdataset , i_target_width ));
395
+ }
333
396
334
397
/**
335
398
* この関数は、マーカの姿勢行列を返します。
0 commit comments