Exemplo n.º 1
0
            void ReadFloat(IO.EndianReader s)
            {
                switch (TypeDesc.SizeOf)
                {
                case sizeof(float):
                {
                    if (ArrayLength == 1)
                    {
                        Single = s.ReadSingle();
                    }
                    else
                    {
                        var array = new float[ArrayLength];
                        for (int x = 0; x < array.Length; x++)
                        {
                            array[x] = s.ReadSingle();
                        }

                        OpaqueArrayRef = array;
                    }
                } break;

                case sizeof(double):
                {
                    if (ArrayLength == 1)
                    {
                        Double = s.ReadDouble();
                    }
                    else
                    {
                        var array = new double[ArrayLength];
                        for (int x = 0; x < array.Length; x++)
                        {
                            array[x] = s.ReadDouble();
                        }

                        OpaqueArrayRef = array;
                    }
                } break;

                default:
                    throw new KSoft.Debug.UnreachableException(TypeDesc.SizeOf.ToString());
                }
            }
 void Read(IO.EndianReader s, out float value)
 {
     if (s.ReadBoolean())
     {
         value = s.ReadSingle();
     }
     else
     {
         value = 0f;
     }
 }