static object Box()

in winrt/test.managed/EffectTests.cs [381:494]


        static object Box(object value, PropertyInfo property)
        {
            if (value is int ||
                value is bool ||
                value is float[])
            {
                return value;
            }
            else if (value is float)
            {
                if (NeedsRadianToDegreeConversion(property))
                {
                    return (float)value * 180f / (float)Math.PI;
                }
                else
                {
                    return value;
                }
            }
            else if (value is Enum)
            {
                return (uint)(int)value;
            }
            else if (value is Vector2)
            {
                var v = (Vector2)value;

                return new float[] { v.X, v.Y };
            }
            else if (value is Vector3)
            {
                var v = (Vector3)value;

                return new float[] { v.X, v.Y, v.Z };
            }
            else if (value is Vector4)
            {
                var v = (Vector4)value;

                return new float[] { v.X, v.Y, v.Z, v.W };
            }
            else if (value is Matrix3x2)
            {
                var m = (Matrix3x2)value;

                return new float[]
                { 
                    m.M11, m.M12, 
                    m.M21, m.M22, 
                    m.M31, m.M32 
                };
            }
            else if (value is Matrix4x4)
            {
                var m = (Matrix4x4)value;

                return new float[]
                { 
                    m.M11, m.M12, m.M13, m.M14, 
                    m.M21, m.M22, m.M23, m.M24, 
                    m.M31, m.M32, m.M33, m.M34, 
                    m.M41, m.M42, m.M43, m.M44, 
                };
            }
            else if (value is Matrix5x4)
            {
                var m = (Matrix5x4)value;

                return new float[]
                { 
                    m.M11, m.M12, m.M13, m.M14, 
                    m.M21, m.M22, m.M23, m.M24, 
                    m.M31, m.M32, m.M33, m.M34, 
                    m.M41, m.M42, m.M43, m.M44, 
                    m.M51, m.M52, m.M53, m.M54, 
                };
            }
            else if (value is Rect)
            {
                var r = (Rect)value;

                return new float[]
                { 
                    (float)r.Left,
                    (float)r.Top,
                    (float)r.Right,
                    (float)r.Bottom,
                };
            }
            else if (value is Windows.UI.Color)
            {
                var c = (Windows.UI.Color)value;

                return new float[]
                { 
                    (float)c.R / 255,
                    (float)c.G / 255,
                    (float)c.B / 255,
                    (float)c.A / 255,
                };
            }
            else if (value is ColorManagementProfile
#if WINDOWS_UWP
                  || value is EffectTransferTable3D
#endif
                    )
            {
                return new object[] { value };
            }
            else
            {
                throw new NotSupportedException("Unsupported Box type " + value.GetType());
            }
        }