PSSMDemo.LightCameraBuilder.UpdateEyeProjectionProperties C# (CSharp) Method

UpdateEyeProjectionProperties() protected method

表示カメラの射影行列を構成する要素を抽出します。
protected UpdateEyeProjectionProperties ( ) : void
return void
        void UpdateEyeProjectionProperties()
        {
            if ((dirtyFlags & DirtyFlags.EyeProjectionProperties) != 0)
            {

                // eyeProjection に正しい射影行列が設定されている事を仮定。
                if (eyeProjection.M44 == 1.0f)
                {
                    // 正射影。
                    eyeProjectionType = ProjectionType.Orthographic;
                    MatrixHelper.ExtractOrthographic(
                        ref eyeProjection,
                        out eyeProjectionLeft,
                        out eyeProjectionRight,
                        out eyeProjectionBottom,
                        out eyeProjectionTop,
                        out eyeProjectionNear,
                        out eyeProjectionFar);

                    eyeProjectionFov = float.NaN;
                    eyeProjectionAspectRatio = float.NaN;
                }
                else
                {
                    // 透視射影。
                    eyeProjectionType = ProjectionType.Perspective;
                    MatrixHelper.ExtractPerspective(
                        ref eyeProjection,
                        out eyeProjectionFov,
                        out eyeProjectionAspectRatio,
                        out eyeProjectionLeft,
                        out eyeProjectionRight,
                        out eyeProjectionBottom,
                        out eyeProjectionTop,
                        out eyeProjectionNear,
                        out eyeProjectionFar);
                }

                dirtyFlags &= ~DirtyFlags.EyeProjectionProperties;
            }
        }