/** * 透視変換パラメータを行列から復元します。 * @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); }
/** * 透視変換パラメータを行列から復元します。 * @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; }