private static void ReadWMODoodadDefs(BinaryReader br, ExtractedWMO wmo) { var numSets = br.ReadInt32(); var setList = new List <Dictionary <int, ExtractedWMOM2Definition> >(numSets); for (var i = 0; i < numSets; i++) { var numDefs = br.ReadInt32(); var defDict = new Dictionary <int, ExtractedWMOM2Definition>(numDefs); for (var j = 0; j < numDefs; j++) { var key = br.ReadInt32(); var def = new ExtractedWMOM2Definition { FilePath = br.ReadString(), Position = br.ReadVector3(), Extents = br.ReadBoundingBox(), WMOToModel = br.ReadMatrix(), ModeltoWMO = br.ReadMatrix() }; defDict.Add(key, def); } setList.Add(defDict); } wmo.WMOM2Defs = setList; }
private static void ReadWMODoodadDefs(BinaryReader br, ExtractedWMO wmo) { var numSets = br.ReadInt32(); var setList = new List<Dictionary<int, ExtractedWMOM2Definition>>(numSets); for (var i = 0; i < numSets; i++) { var numDefs = br.ReadInt32(); var defDict = new Dictionary<int, ExtractedWMOM2Definition>(numDefs); for (var j = 0; j < numDefs; j++) { var key = br.ReadInt32(); var def = new ExtractedWMOM2Definition { FilePath = br.ReadString(), Position = br.ReadVector3(), Extents = br.ReadBoundingBox(), WMOToModel = br.ReadMatrix(), ModeltoWMO = br.ReadMatrix() }; defDict.Add(key, def); } setList.Add(defDict); } wmo.WMOM2Defs = setList; }
private static void TransformM2(ExtractedM2 m2, ExtractedWMOM2Definition m2Def) { for (var i = 0; i < m2.BoundingVertices.Count; i++) { var vec = m2.BoundingVertices[i]; Vector3 rotatedVec; Vector3.Transform(ref vec, ref m2Def.ModeltoWMO, out rotatedVec); Vector3 finalVec; Vector3.Add(ref rotatedVec, ref m2Def.Position, out finalVec); m2.BoundingVertices[i] = finalVec; } }