private void ReadLiquid() { var chunk = SubData.GetChunkByName("MLIQ"); if (chunk == null) { return; } HasLiquidData = true; var stream = chunk.GetStream(); LiquidDataHeader = LiquidHeader.Read(stream); LiquidDataGeometry = LiquidData.Read(stream, LiquidDataHeader); }
private void ReadVertices() { var chunk = SubData.GetChunkByName("MOVT"); if (chunk == null) { return; } var verticeCount = (int)(chunk.Length / 12); Vertices = new Vector3[verticeCount]; var stream = chunk.GetStream(); for (int i = 0; i < verticeCount; i++) { Vertices[i] = Vector3Helper.Read(stream); } }
private void ReadNormals() { var chunk = SubData.GetChunkByName("MONR"); if (chunk == null) { return; } var normalCount = (int)(chunk.Length / 12); Debug.Assert(normalCount == Vertices.Length); Normals = new Vector3[normalCount]; var stream = chunk.GetStream(); for (int i = 0; i < normalCount; i++) { Normals[i] = Vector3Helper.Read(stream); } }
private void ReadMaterials() { var chunk = SubData.GetChunkByName("MOPY"); if (chunk == null) { return; } var stream = chunk.GetStream(); var triangleCount = (int)(chunk.Length / 2); TriangleFlags = new byte[triangleCount]; TriangleMaterials = new byte[triangleCount]; for (int i = 0; i < triangleCount; i++) { TriangleFlags[i] = (byte)stream.ReadByte(); TriangleMaterials[i] = (byte)stream.ReadByte(); } }
private void ReadTriangles() { var chunk = SubData.GetChunkByName("MOVI"); if (chunk == null) { return; } var triangleCount = (int)(chunk.Length / 6); Debug.Assert(triangleCount == TriangleFlags.Length); var r = new BinaryReader(chunk.GetStream()); Triangles = new Triangle <ushort> [triangleCount]; for (int i = 0; i < triangleCount; i++) { Triangles[i] = new Triangle <ushort>(TriangleType.Wmo, r.ReadUInt16(), r.ReadUInt16(), r.ReadUInt16()); } }