/// <summary>
        /// This function returns OpenGL style projection matrix.
        /// </summary>
        /// <returns>
        /// output parametor.
        /// </returns>
        public Matrix4x4 getUnityProjectionMatrix()
        {
            Matrix4x4 mat = new Matrix4x4();

            NyARFrustum.FrustumParam f = this.getFrustum().getFrustumParam(new NyARFrustum.FrustumParam());
            NyARUnityUtil.toCameraFrustumRH(this._ref_param, 1, f.near, f.far, ref mat);
            return(mat);
        }
        /// <summary>
        /// この関数は,背景画像の姿勢行列をtransformメンバに設定します.
        /// </summary>
        public void setARBackgroundTransform(Transform i_transform)
        {
            NyARFrustum f = this.getFrustum();

            NyARFrustum.FrustumParam fp = f.getFrustumParam(new NyARFrustum.FrustumParam());
            float bg_pos = (float)fp.far;

            i_transform.position = new Vector3(0, 0, (float)bg_pos);
            double b = bg_pos / fp.near / 10;      // 10?

            i_transform.localScale  = new Vector3((float)(-(fp.right - fp.left) * b), 1f, -(float)((fp.top - fp.bottom) * b));
            i_transform.eulerAngles = new Vector3(-90, 0, 0);
        }
Exemple #3
0
 /**
  * {@link NyARSingleCameraSystem}のイベント通知リストへオブザーバを追加します。
  * この関数は、オブザーバが起動時に使用します。ユーザが使用することは余りありません。
  * @param i_observer
  * 通知先のオブザーバオブジェクト
  */
 public void addObserver(INyARSingleCameraSystemObserver i_observer)
 {
     this._observer.pushAssert(i_observer);
     NyARFrustum.FrustumParam f = this.getFrustum().getFrustumParam(new NyARFrustum.FrustumParam());
     i_observer.onUpdateCameraParametor(this._ref_param, f.near, f.far);
 }
Exemple #4
0
 /// <summary>
 /// This function returns OpenGL style projection matrix to output parameter.
 /// </summary>
 /// <returns>
 /// output parametor.
 /// </returns>
 /// <param name='i_mat'>
 /// i_mat object which contain projection matrix.
 /// </param>
 public Matrix4x4 getUnityProjectionMatrix(ref Matrix4x4 i_mat)
 {
     NyARFrustum.FrustumParam f = this.getFrustum().getFrustumParam(new NyARFrustum.FrustumParam());
     NyARUnityUtil.ToCameraFrustumRH(this._ref_param, 1, f.near, f.far, ref i_mat);
     return(i_mat);
 }