Example #1
0
        public M2Info(string modelName)
        {
            ModelPath = modelName;
            mFile = new Stormlib.MPQFile(modelName);
            Header = mFile.Read<M2Header>();

            BoundingBox = new SlimDX.BoundingBox(Header.VertexMin, Header.VertexMax);

            mFile.Position = Header.ofsName;
            byte[] data = mFile.Read(Header.lenName - 1);
            ModelName = Encoding.UTF8.GetString(data);

            FileDirectory = System.IO.Path.GetDirectoryName(modelName) + "\\";
            var vertices = new M2Vertex[Header.nVertices];
            mFile.Position = Header.ofsVertices;
            mFile.Read(vertices);

            LoadTextures();
            ParseVertices(vertices);
            LoadSkins();
        }
Example #2
0
        public M2Info(string modelName)
        {
            ModelPath = modelName;
            mFile     = new Stormlib.MPQFile(modelName);
            Header    = mFile.Read <M2Header>();

            BoundingBox = new SlimDX.BoundingBox(Header.VertexMin, Header.VertexMax);

            mFile.Position = Header.ofsName;
            byte[] data = mFile.Read(Header.lenName - 1);
            ModelName = Encoding.UTF8.GetString(data);

            FileDirectory = System.IO.Path.GetDirectoryName(modelName) + "\\";
            var vertices = new M2Vertex[Header.nVertices];

            mFile.Position = Header.ofsVertices;
            mFile.Read(vertices);

            LoadTextures();
            ParseVertices(vertices);
            LoadSkins();
        }
Example #3
0
        private unsafe void ParseVertices(M2Vertex[] vertices)
        {
            foreach (var v in vertices)
            {
                    MdxVertex vw = new MdxVertex()
                    {
                        X = v.x,
                        Y = v.y,
                        Z = v.z,
                        NX = v.nx,
                        NY = v.ny,
                        NZ = v.nz,
                        U = v.u,
                        V = v.v,
                        bi1 = v.bi1,
                        bi2 = v.bi2,
                        bi3 = v.bi3,
                        bi4 = v.bi4,
                        w1 = (float)v.bw1 / 255.0f,
                        w2 = (float)v.bw2 / 255.0f,
                        w3 = (float)v.bw3 / 255.0f,
                        w4 = (float)v.bw4 / 255.0f
                    };

                Vertices.Add(vw);
            }
        }