/** <summary>
 * {@link #addARMarker(INyARRgbRaster, int, int, double)}It is a wrapper. I make a marker pattern from Bitmap.
 * The arguments are{@link #addARMarker(INyARRgbRaster, int, int, double)}Please refer to the.
 *
 * </summary>
 * <param name="i_img"></param>
 * <param name="i_patt_resolution">I specify the resolution of the marker to be generated.</param>
 * <param name="i_patt_edge_percentage">Specifies the percentage of the edge region of the image.</param>
 * <param name="i_marker_size">I specify the physical size of the marker.</param>
 * <returns></returns>
 **/
 public int addARMarker(Texture2D i_img, int i_patt_resolution, int i_patt_edge_percentage, double i_marker_size)
 {
     int w = i_img.width;
     int h = i_img.height;
     NyARUnityRaster ur = new NyARUnityRaster(i_img);
     NyARCode c = new NyARCode(i_patt_resolution, i_patt_resolution);
     //Marker pattern cut out from a raster
     INyARPerspectiveCopy pc = (INyARPerspectiveCopy)ur.createInterface(typeof(INyARPerspectiveCopy));
     NyARRgbRaster tr = new NyARRgbRaster(i_patt_resolution, i_patt_resolution);
     pc.copyPatt(0, 0, w, 0, w, h, 0, h, i_patt_edge_percentage, i_patt_edge_percentage, 4, tr);
     //Set the pattern cut
     c.setRaster(tr);
     return base.addARMarker(c, i_patt_edge_percentage, i_marker_size);
 }
 //
 // This reogion may be moved to NyARJ2seMarkerSystem.
 //
 /// <summary>
 /// {@link #addARMarker(INyARRgbRaster, int, int, double)}のラッパーです。Bitmapからマーカパターンを作ります。
 /// 引数については、{@link #addARMarker(INyARRgbRaster, int, int, double)}を参照してください。
 /// 
 /// </summary>
 /// <param name="i_img"></param>
 /// <param name="i_patt_resolution">生成するマーカの解像度を指定します。</param>
 /// <param name="i_patt_edge_percentage">画像のエッジ領域を%で指定します。</param>
 /// <param name="i_marker_size">マーカの物理サイズを指定します。</param>
 /// <returns></returns>
 public int addARMarker(Bitmap i_img, int i_patt_resolution, int i_patt_edge_percentage, double i_marker_size)
 {
     int w = i_img.Width;
     int h = i_img.Height;
     using (NyARBitmapRaster bmr = new NyARBitmapRaster(i_img))
     {
         NyARCode c = new NyARCode(i_patt_resolution, i_patt_resolution);
         //ラスタからマーカパターンを切り出す。
         INyARPerspectiveCopy pc = (INyARPerspectiveCopy)bmr.createInterface(typeof(INyARPerspectiveCopy));
         NyARRgbRaster tr = new NyARRgbRaster(i_patt_resolution, i_patt_resolution);
         pc.copyPatt(0, 0, w, 0, w, h, 0, h, i_patt_edge_percentage, i_patt_edge_percentage, 4, tr);
         //切り出したパターンをセット
         c.setRaster(tr);
         return base.addARMarker(c, i_patt_edge_percentage, i_marker_size);
     }
 }
	/**
	 * この関数は、画像からARマーカパターンを生成して、登録します。
	 * ビットマップ等の画像から生成したパターンは、撮影画像から生成したパターンファイルと比較して、撮影画像の色調変化に弱くなります。
	 * 注意してください。
	 * @param i_raster
	 * マーカ画像を格納したラスタオブジェクト
	 * @param i_patt_resolution
	 * マーカの解像度
	 * @param i_patt_edge_percentage
	 * マーカのエッジ領域のサイズ。マーカパターンは、i_rasterからエッジ領域を除いたパターンから生成します。
	 * ARToolKitスタイルの画像を用いる場合は、25を指定します。
	 * @param i_marker_size
	 * マーカの平方サイズ[mm]
	 * @return
	 * マーカID(ハンドル)値。
	 * @throws NyARException
	 */
	public int addARMarker(INyARRgbRaster i_raster,int i_patt_resolution,int i_patt_edge_percentage,double i_marker_size)
	{
		NyARCode c=new NyARCode(i_patt_resolution,i_patt_resolution);
		NyARIntSize s=i_raster.getSize();
		//ラスタからマーカパターンを切り出す。
		INyARPerspectiveCopy pc=(INyARPerspectiveCopy)i_raster.createInterface(typeof(INyARPerspectiveCopy));
		NyARRgbRaster tr=new NyARRgbRaster(i_patt_resolution,i_patt_resolution);
		pc.copyPatt(0,0,s.w,0,s.w,s.h,0,s.h,i_patt_edge_percentage, i_patt_edge_percentage,4, tr);
		//切り出したパターンをセット
		c.setRaster(tr);
		return this.addARMarker(c,i_patt_edge_percentage,i_marker_size);
	}