コード例 #1
0
        /**
         * 透視変換パラメータを行列から復元します。
         * @param o_value
         * @return
         * 値をセットしたo_valueを返します。
         */
        public FrustumParam getFrustumParam(FrustumParam o_value)
        {
            double             near;
            NyARDoubleMatrix44 mat = this._frustum_rh;

            o_value.far    = mat.m23 / (mat.m22 + 1);
            o_value.near   = near = mat.m23 / (mat.m22 - 1);
            o_value.left   = (mat.m02 - 1) * near / mat.m00;
            o_value.right  = (mat.m02 + 1) * near / mat.m00;
            o_value.bottom = (mat.m12 - 1) * near / mat.m11;
            o_value.top    = (mat.m12 + 1) * near / mat.m11;
            return(o_value);
        }
コード例 #2
0
ファイル: NyARFrustum.cs プロジェクト: ooHIROoo/Imagine2016
 /**
  * 透視変換パラメータを行列から復元します。
  * @param o_value
  * @return
  * 値をセットしたo_valueを返します。
  */
 public FrustumParam getFrustumParam(FrustumParam o_value)
 {
     double near;
     NyARDoubleMatrix44 mat = this._frustum_rh;
     o_value.far = mat.m23 / (mat.m22 + 1);
     o_value.near = near = mat.m23 / (mat.m22 - 1);
     o_value.left = (mat.m02 - 1) * near / mat.m00;
     o_value.right = (mat.m02 + 1) * near / mat.m00;
     o_value.bottom = (mat.m12 - 1) * near / mat.m11;
     o_value.top = (mat.m12 + 1) * near / mat.m11;
     return o_value;
 }