Esempio n. 1
0
        public void Read()
        {
            foreach (var subChunk in Data.Chunks)
            {
                switch (subChunk.Name)
                {
                    case "MOHD":
                        MOHD = new MOHD(subChunk);
                        break;
                    case "MOGN":
                        MOGN = new MOGN(subChunk);
                        break;
                    case "MOGI":
                        MOGI = new MOGI(subChunk);
                        break;
                    case "MODD":
                        MODD = new MODD(subChunk);
                        break;
                    case "MODN":
                        MODN = new MODN(subChunk);
                        break;
                    case "MODS":
                        MODS = new MODS(subChunk);
                        break;
                }
            }

            ReadGroups();
        }
Esempio n. 2
0
        public static Matrix GetWmoDoodadTransform(MODD.MODDEntry modd, MODF.MODFEntry modf)
        {
            var modfTransform = GetTransform(modf.Position, modf.Rotation);
            var translation = Matrix.Translation(modd.Position);
            var quatRotation = Matrix.RotationQuaternion(new Quaternion(-modd.Rotation[0], -modd.Rotation[1], -modd.Rotation[2], modd.Rotation[3]));

            return Matrix.Scaling(modd.Scale) * quatRotation * translation * modfTransform;
        }