/// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            base.Read(reader, parameters);

            // read structure data
            this.BridgeSimGfxPointer    = reader.ReadUInt64();
            this.MorphControllerPointer = reader.ReadUInt64();
            this.VerletCloth1Pointer    = reader.ReadUInt64();
            this.VerletCloth2Pointer    = reader.ReadUInt64();
            this.VerletCloth3Pointer    = reader.ReadUInt64();
            this.Unknown_38h            = reader.ReadUInt64();
            this.Unknown_40h            = reader.ReadUInt64();
            this.Unknown_48h            = reader.ReadUInt64();
            this.Type        = reader.ReadUInt32();
            this.Unknown_54h = reader.ReadUInt32();
            this.Name        = reader.ReadBlock <string32_r>();
            this.Unknown_78h = reader.ReadUInt64();

            // read reference data
            this.BridgeSimGfx = reader.ReadBlockAt <ClothBridgeSimGfx>(
                this.BridgeSimGfxPointer // offset
                );
            this.MorphController = reader.ReadBlockAt <MorphController>(
                this.MorphControllerPointer // offset
                );
            this.VerletCloth1 = reader.ReadBlockAt <VerletCloth>(
                this.VerletCloth1Pointer // offset
                );
            this.VerletCloth2 = reader.ReadBlockAt <VerletCloth>(
                this.VerletCloth2Pointer // offset
                );
            this.VerletCloth3 = reader.ReadBlockAt <VerletCloth>(
                this.VerletCloth3Pointer // offset
                );
        }
        /// <summary>
        /// Reads the data-block from a stream.
        /// </summary>
        public override void Read(ResourceDataReader reader, params object[] parameters)
        {
            // read structure data
            this.VFT                    = reader.ReadUInt32();
            this.Unknown_4h             = reader.ReadUInt32();
            this.Unknown_8h             = reader.ReadUInt32();
            this.Unknown_Ch             = reader.ReadUInt32();
            this.BridgeSimGfxPointer    = reader.ReadUInt64();
            this.MorphControllerPointer = reader.ReadUInt64();
            this.VerletCloth1Pointer    = reader.ReadUInt64();
            this.VerletCloth2Pointer    = reader.ReadUInt64();
            this.VerletCloth3Pointer    = reader.ReadUInt64();
            this.Unknown_38h            = reader.ReadUInt32();
            this.Unknown_3Ch            = reader.ReadUInt32();
            this.Unknown_40h            = reader.ReadUInt32();
            this.Unknown_44h            = reader.ReadUInt32();
            this.Unknown_48h            = reader.ReadUInt32();
            this.Unknown_4Ch            = reader.ReadUInt32();
            this.Type                   = reader.ReadUInt32();
            this.Unknown_54h            = reader.ReadUInt32();
            this.Unknown_58h            = reader.ReadUInt32();
            this.Unknown_5Ch            = reader.ReadUInt32();
            this.Unknown_60h            = reader.ReadUInt32();
            this.Unknown_64h            = reader.ReadUInt32();
            this.Unknown_68h            = reader.ReadUInt32();
            this.Unknown_6Ch            = reader.ReadUInt32();
            this.Unknown_70h            = reader.ReadUInt32();
            this.Unknown_74h            = reader.ReadUInt32();
            this.Unknown_78h            = reader.ReadUInt32();
            this.Unknown_7Ch            = reader.ReadUInt32();

            // read reference data
            this.BridgeSimGfx = reader.ReadBlockAt <ClothBridgeSimGfx>(
                this.BridgeSimGfxPointer // offset
                );
            this.MorphController = reader.ReadBlockAt <MorphController>(
                this.MorphControllerPointer // offset
                );
            this.VerletCloth1 = reader.ReadBlockAt <VerletCloth>(
                this.VerletCloth1Pointer // offset
                );
            this.VerletCloth2 = reader.ReadBlockAt <VerletCloth>(
                this.VerletCloth2Pointer // offset
                );
            this.VerletCloth3 = reader.ReadBlockAt <VerletCloth>(
                this.VerletCloth3Pointer // offset
                );
        }