private void parseFace(BinaryReader br) { int num = br.ReadInt32(); Log.Debug("VMD", "Face num: " + num.ToString()); if (num > 0) { // initialize face hash var mh = new Dictionary <string, List <Morphing> > (); Morph = new Dictionary <string, List <Morphing> >(); // parser for (int i = 0; i < num; i++) { var m = new Morphing(); string name = Util.ReadString(br, 15); m.frame_no = br.ReadInt32(); m.weight = br.ReadSingle(); List <Morphing> fi; if (mh.ContainsKey(name)) { fi = mh[name]; } else { fi = new List <Morphing>(); // default face var d = new Morphing(); d.frame_no = -1; d.weight = 0; fi.Add(d); mh[name] = fi; } fi.Add(m); } // sorted by frame_no foreach (var i in mh) { Morph[i.Key] = new List <Morphing>(from x in i.Value orderby x.frame_no select x); } } else { Morph = null; } }
private void parseFace(BinaryReader br) { int num = br.ReadInt32(); Log.Debug("VMD", "Face num: " + num.ToString()); if (num > 0) { // initialize face hash var mh = new Dictionary<string, List<Morphing> > (); Morph = new Dictionary<string, List<Morphing> >(); // parser for (int i = 0; i < num; i++) { var m = new Morphing(); string name = Util.ReadString(br, 15); m.frame_no = br.ReadInt32(); m.weight = br.ReadSingle(); List<Morphing> fi; if(mh.ContainsKey(name)) { fi = mh[name]; } else { fi = new List<Morphing>(); // default face var d = new Morphing(); d.frame_no = -1; d.weight = 0; fi.Add(d); mh[name] = fi; } fi.Add(m); } // sorted by frame_no foreach (var i in mh) { Morph[i.Key] = new List<Morphing>(from x in i.Value orderby x.frame_no select x); } } else { Morph = null; } }