Exemplo n.º 1
0
            /**
             * ストリームから読み出したデータでインスタンスを初期化します。
             * @param i_stream
             * @throws NyARException
             */
            public ParamLoader(StreamReader i_stream)
            {
                try {
                    //読み出し
                    ByteBufferedInputStream bis=new ByteBufferedInputStream(i_stream,512);
                    int s=bis.readToBuffer(512);
                    bis.order(ByteBufferedInputStream.ENDIAN_BIG);
                    //読み出したサイズでバージョンを決定
                    int[] version_table={136,144,152,176};
                    int version=-1;
                    for(int i=0;i<version_table.Length;i++){
                        if(s%version_table[i]==0){
                            version=i+1;
                            break;
                        }
                    }
                    //一致しなければ無し
                    if(version==-1){
                        throw new NyARException();
                    }
                    //size
                    this.size=new NyARIntSize();
                    this.size.setValue(bis.getInt(),bis.getInt());

                    //projection matrix
                    this.pmat=new NyARPerspectiveProjectionMatrix();
                    double[] pjv=new double[16];
                    for(int i=0;i<12;i++){
                        pjv[i]=bis.getDouble();
                    }
                    pjv[12]=pjv[13]=pjv[14]=0;
                    pjv[15]=1;
                    this.pmat.setValue(pjv);

                    //dist factor
                    double[] df;
                    switch(version)
                    {
                    case 1://Version1
                        df=new double[NyARCameraDistortionFactorV2.NUM_OF_FACTOR];
                        this.dist_factor=new NyARCameraDistortionFactorV2();
                        break;
                    case 4://Version4
                        df=new double[NyARCameraDistortionFactorV4.NUM_OF_FACTOR];
                        this.dist_factor=new NyARCameraDistortionFactorV4();
                        break;
                    default:
                        throw new NyARException();
                    }
                    for(int i=0;i<df.Length;i++){
                        df[i]=bis.getDouble();
                    }
                    this.dist_factor.setValue(df);
                } catch (Exception e) {
                    throw new NyARException(e);
                }
            }
Exemplo n.º 2
0
            /**
             * ストリームから読み出したデータでインスタンスを初期化します。
             * @param i_stream
             * @throws NyARException
             */
            public ParamLoader(StreamReader i_stream)
            {
                try {
                    //読み出し
                    ByteBufferedInputStream bis = new ByteBufferedInputStream(i_stream, 512);
                    int s = bis.readToBuffer(512);
                    bis.order(ByteBufferedInputStream.ENDIAN_BIG);
                    //読み出したサイズでバージョンを決定
                    int[] version_table = { 136, 144, 152, 176 };
                    int   version       = -1;
                    for (int i = 0; i < version_table.Length; i++)
                    {
                        if (s % version_table[i] == 0)
                        {
                            version = i + 1;
                            break;
                        }
                    }
                    //一致しなければ無し
                    if (version == -1)
                    {
                        throw new NyARException();
                    }
                    //size
                    this.size = new NyARIntSize();
                    this.size.setValue(bis.getInt(), bis.getInt());

                    //projection matrix
                    this.pmat = new NyARPerspectiveProjectionMatrix();
                    double[] pjv = new double[16];
                    for (int i = 0; i < 12; i++)
                    {
                        pjv[i] = bis.getDouble();
                    }
                    pjv[12] = pjv[13] = pjv[14] = 0;
                    pjv[15] = 1;
                    this.pmat.setValue(pjv);

                    //dist factor
                    double[] df;
                    switch (version)
                    {
                    case 1:                //Version1
                        df = new double[NyARCameraDistortionFactorV2.NUM_OF_FACTOR];
                        this.dist_factor = new NyARCameraDistortionFactorV2();
                        break;

                    case 4:                //Version4
                        df = new double[NyARCameraDistortionFactorV4.NUM_OF_FACTOR];
                        this.dist_factor = new NyARCameraDistortionFactorV4();
                        break;

                    default:
                        throw new NyARException();
                    }
                    for (int i = 0; i < df.Length; i++)
                    {
                        df[i] = bis.getDouble();
                    }
                    this.dist_factor.setValue(df);
                } catch (Exception e) {
                    throw new NyARException(e);
                }
            }