/**
  * 現在のファイルイメージをbyte[]で返却します。
  * @return
  */
 public byte[] makeFset3Binary()
 {
     jp.nyatla.nyartoolkit.cs.cs4.BinaryWriter bw = new jp.nyatla.nyartoolkit.cs.cs4.BinaryWriter(jp.nyatla.nyartoolkit.cs.cs4.BinaryWriter.ENDIAN_LITTLE, 2 * 1024 * 1024);
     bw.putInt(this.ref_point.Length);
     for (int i = 0; i < this.ref_point.Length; i++)
     {
         RefDataSet rd = this.ref_point[i];
         bw.putFloat((float)rd.coord2D.x);
         bw.putFloat((float)rd.coord2D.y);
         bw.putFloat((float)rd.coord3D.x);
         bw.putFloat((float)rd.coord3D.y);
         bw.putByteArray(rd.featureVec.v);
         bw.putFloat((float)rd.featureVec.angle);
         bw.putFloat((float)rd.featureVec.scale);
         bw.putInt(rd.featureVec.maxima);
         bw.putInt(rd.pageNo);
         bw.putInt(rd.refImageNo);
     }
     bw.putInt(this.page_info.Length);
     for (int i = 0; i < this.page_info.Length; i++)
     {
         PageInfo pi = this.page_info[i];
         bw.putInt(pi.page_no);
         bw.putInt(pi.image_info.Length);
         for (int j = 0; j < pi.image_info.Length; j++)
         {
             bw.putInt(pi.image_info[j].w);
             bw.putInt(pi.image_info[j].h);
             bw.putInt(pi.image_info[j].image_no);
         }
     }
     return(bw.getBinary());
 }
        public static NyARNftFreakFsetFile loadFromfset3File(byte[] i_source)
        {
            jp.nyatla.nyartoolkit.cs.cs4.BinaryReader br = new jp.nyatla.nyartoolkit.cs.cs4.BinaryReader(i_source, jp.nyatla.nyartoolkit.cs.cs4.BinaryReader.ENDIAN_LITTLE);
            int num = br.getInt();

            RefDataSet[] rds = new RefDataSet[num];

            for (int i = 0; i < num; i++)
            {
                RefDataSet rd = new RefDataSet();
                rd.coord2D.x = br.getFloat();
                rd.coord2D.y = br.getFloat();
                rd.coord3D.x = br.getFloat();
                rd.coord3D.y = br.getFloat();
                br.getByteArray(rd.featureVec.v);
                rd.featureVec.angle  = br.getFloat();
                rd.featureVec.scale  = br.getFloat();
                rd.featureVec.maxima = br.getInt();
                rd.pageNo            = br.getInt();
                rd.refImageNo        = br.getInt();
                rds[i] = rd;
            }

            int page_num = br.getInt();

            PageInfo[] kpi = new PageInfo[page_num];
            for (int i = 0; i < page_num; i++)
            {
                int         page_no = br.getInt();
                int         img_num = br.getInt();
                ImageInfo[] kii     = new ImageInfo[img_num];
                for (int i2 = 0; i2 < img_num; i2++)
                {
                    kii[i2] = new ImageInfo(br.getInt(), br.getInt(), br.getInt());
                }
                kpi[i] = new PageInfo(page_no, kii);
            }
            return(new NyARNftFreakFsetFile(rds, kpi));
        }