Пример #1
0
        public Morph(NiFile file, BinaryReader reader, uint numVertices)
        {
            if (file.Version >= eNifVersion.VER_10_1_0_106)
            {
                FrameName = new NiString(file, reader);
            }

            if (file.Version <= eNifVersion.VER_10_1_0_0)
            {
                Keys = new KeyGroup <FloatKey>(reader);
            }

            if (file.Version >= eNifVersion.VER_10_1_0_106 &&
                file.Version <= eNifVersion.VER_10_2_0_0)
            {
                UnkownInt = reader.ReadUInt32();
            }

            if (file.Version >= eNifVersion.VER_20_0_0_4 &&
                file.Version <= eNifVersion.VER_20_1_0_3)
            {
                UnkownInt = reader.ReadUInt32();
            }

            Vectors = new Vector3[numVertices];
            for (var i = 0; i < numVertices; i++)
            {
                Vectors[i] = reader.ReadVector3();
            }
        }
Пример #2
0
 public NiUVData(NiFile file, BinaryReader reader)
     : base(file, reader)
 {
     UTranslation      = new KeyGroup <FloatKey>(reader);
     VTranslation      = new KeyGroup <FloatKey>(reader);
     UScalingAndTiling = new KeyGroup <FloatKey>(reader);
     VScalingAndTiling = new KeyGroup <FloatKey>(reader);
 }
Пример #3
0
        public NiKeyframeData(NiFile file, BinaryReader reader)
            : base(file, reader)
        {
            var numRotationKeys = reader.ReadUInt32();

            if (numRotationKeys != 0)
            {
                KeyType = (eKeyType)reader.ReadUInt32();
            }

            if (KeyType != eKeyType.XYZ_ROTATION_KEY)
            {
                QuaternionKeys = new QuatKey[numRotationKeys];
                for (var c = 0; c < numRotationKeys; c++)
                {
                    QuaternionKeys[c] = new QuatKey(reader, KeyType);
                }
            }

            if (Version <= eNifVersion.VER_10_1_0_0 &&
                KeyType == eKeyType.XYZ_ROTATION_KEY)
            {
                UnkownFloat = reader.ReadSingle(); // unknown float
            }

            if (KeyType == eKeyType.XYZ_ROTATION_KEY)
            {
                Rotations = new KeyGroup <FloatKey> [3];
                for (var i = 0; i < 3; i++)
                {
                    Rotations[i] = new KeyGroup <FloatKey>(reader);
                }
            }

            Translations = new KeyGroup <VecKey>(reader);
            Scales       = new KeyGroup <FloatKey>(reader);
        }
Пример #4
0
 public NiPosData(NiFile file, BinaryReader reader) : base(file, reader)
 {
     Data = new KeyGroup <VecKey>(reader);
 }
Пример #5
0
 public NiFloatData(NiFile file, BinaryReader reader)
     : base(file, reader)
 {
     Data = new KeyGroup <FloatKey>(reader);
 }
Пример #6
0
 public NiColorData(NiFile file, BinaryReader reader)
     : base(file, reader)
 {
     Data = new KeyGroup <Color4Key>(reader);
 }