GetRows() public method

public GetRows ( ) : int
return int
Esempio n. 1
0
        public static NodeAttribute ReadAttribute(NodeAttribute.DataType type, BinaryReader reader)
        {
            var attr = new NodeAttribute(type);

            switch (type)
            {
            case NodeAttribute.DataType.DT_None:
                break;

            case NodeAttribute.DataType.DT_Byte:
                attr.Value = reader.ReadByte();
                break;

            case NodeAttribute.DataType.DT_Short:
                attr.Value = reader.ReadInt16();
                break;

            case NodeAttribute.DataType.DT_UShort:
                attr.Value = reader.ReadUInt16();
                break;

            case NodeAttribute.DataType.DT_Int:
                attr.Value = reader.ReadInt32();
                break;

            case NodeAttribute.DataType.DT_UInt:
                attr.Value = reader.ReadUInt32();
                break;

            case NodeAttribute.DataType.DT_Float:
                attr.Value = reader.ReadSingle();
                break;

            case NodeAttribute.DataType.DT_Double:
                attr.Value = reader.ReadDouble();
                break;

            case NodeAttribute.DataType.DT_IVec2:
            case NodeAttribute.DataType.DT_IVec3:
            case NodeAttribute.DataType.DT_IVec4:
            {
                int columns = attr.GetColumns();
                var vec     = new int[columns];
                for (int i = 0; i < columns; i++)
                {
                    vec[i] = reader.ReadInt32();
                }
                attr.Value = vec;
                break;
            }

            case NodeAttribute.DataType.DT_Vec2:
            case NodeAttribute.DataType.DT_Vec3:
            case NodeAttribute.DataType.DT_Vec4:
            {
                int columns = attr.GetColumns();
                var vec     = new float[columns];
                for (int i = 0; i < columns; i++)
                {
                    vec[i] = reader.ReadSingle();
                }
                attr.Value = vec;
                break;
            }

            case NodeAttribute.DataType.DT_Mat2:
            case NodeAttribute.DataType.DT_Mat3:
            case NodeAttribute.DataType.DT_Mat3x4:
            case NodeAttribute.DataType.DT_Mat4x3:
            case NodeAttribute.DataType.DT_Mat4:
            {
                int columns = attr.GetColumns();
                int rows    = attr.GetRows();
                var mat     = new Matrix(rows, columns);
                attr.Value = mat;

                for (int col = 0; col < columns; col++)
                {
                    for (int row = 0; row < rows; row++)
                    {
                        mat[row, col] = reader.ReadSingle();
                    }
                }
                break;
            }

            case NodeAttribute.DataType.DT_Bool:
                attr.Value = reader.ReadByte() != 0;
                break;

            case NodeAttribute.DataType.DT_ULongLong:
                attr.Value = reader.ReadUInt64();
                break;

            case NodeAttribute.DataType.DT_Long:
                attr.Value = reader.ReadInt64();
                break;

            case NodeAttribute.DataType.DT_Int8:
                attr.Value = reader.ReadSByte();
                break;

            case NodeAttribute.DataType.DT_UUID:
                attr.Value = new Guid(reader.ReadBytes(16));
                break;

            default:
                // Strings are serialized differently for each file format and should be
                // handled by the format-specific ReadAttribute()
                throw new InvalidFormatException(String.Format("ReadAttribute() not implemented for type {0}", type));
            }

            return(attr);
        }
Esempio n. 2
0
        private NodeAttribute ReadAttribute(NodeAttribute.DataType type)
        {
            var attr = new NodeAttribute(type);

            switch (type)
            {
            case NodeAttribute.DataType.DT_None:
                break;

            case NodeAttribute.DataType.DT_Byte:
                attr.Value = reader.ReadByte();
                break;

            case NodeAttribute.DataType.DT_Short:
                attr.Value = reader.ReadInt16();
                break;

            case NodeAttribute.DataType.DT_UShort:
                attr.Value = reader.ReadUInt16();
                break;

            case NodeAttribute.DataType.DT_Int:
                attr.Value = reader.ReadInt32();;
                break;

            case NodeAttribute.DataType.DT_UInt:
                attr.Value = reader.ReadUInt32();
                break;

            case NodeAttribute.DataType.DT_Float:
                attr.Value = reader.ReadSingle();
                break;

            case NodeAttribute.DataType.DT_Double:
                attr.Value = reader.ReadDouble();
                break;

            case NodeAttribute.DataType.DT_IVec2:
            case NodeAttribute.DataType.DT_IVec3:
            case NodeAttribute.DataType.DT_IVec4:
            {
                int columns = attr.GetColumns();
                var vec     = new int[columns];
                for (int i = 0; i < columns; i++)
                {
                    vec[i] = reader.ReadInt32();
                }
                attr.Value = vec;
                break;
            }

            case NodeAttribute.DataType.DT_Vec2:
            case NodeAttribute.DataType.DT_Vec3:
            case NodeAttribute.DataType.DT_Vec4:
            {
                int columns = attr.GetColumns();
                var vec     = new float[columns];
                for (int i = 0; i < columns; i++)
                {
                    vec[i] = reader.ReadSingle();
                }
                attr.Value = vec;
                break;
            }

            case NodeAttribute.DataType.DT_Mat2:
            case NodeAttribute.DataType.DT_Mat3:
            case NodeAttribute.DataType.DT_Mat3x4:
            case NodeAttribute.DataType.DT_Mat4x3:
            case NodeAttribute.DataType.DT_Mat4:
            {
                int columns = attr.GetColumns();
                int rows    = attr.GetRows();
                var mat     = new Matrix(rows, columns);
                attr.Value = mat;

                for (int col = 0; col < columns; col++)
                {
                    for (int row = 0; row < rows; row++)
                    {
                        mat[row, col] = reader.ReadSingle();
                    }
                }
                break;
            }

            case NodeAttribute.DataType.DT_Bool:
                attr.Value = reader.ReadByte() != 0;
                break;

            case NodeAttribute.DataType.DT_String:
            case NodeAttribute.DataType.DT_Path:
            case NodeAttribute.DataType.DT_FixedString:
            case NodeAttribute.DataType.DT_LSString:
                attr.Value = ReadString(true);
                break;

            case NodeAttribute.DataType.DT_WString:
            case NodeAttribute.DataType.DT_LSWString:
                attr.Value = ReadWideString(true);
                break;

            case NodeAttribute.DataType.DT_TranslatedString:
                var str = new TranslatedString();
                str.Value  = ReadString(true);
                str.Handle = ReadString(true);
                attr.Value = str;
                break;

            case NodeAttribute.DataType.DT_ULongLong:
                attr.Value = reader.ReadUInt64();
                break;

            case NodeAttribute.DataType.DT_ScratchBuffer:
                var bufferLength = reader.ReadInt32();
                attr.Value = reader.ReadBytes(bufferLength);
                break;

            case NodeAttribute.DataType.DT_Long:
                attr.Value = reader.ReadInt64();
                break;

            case NodeAttribute.DataType.DT_Int8:
                attr.Value = reader.ReadSByte();
                break;

            default:
                throw new InvalidFormatException(String.Format("ReadAttribute() not implemented for type {0}", type));
            }

            return(attr);
        }