public AIMesh(Stream stream) { buffer = new BinaryReader(stream); for (int i = 0; i < AIMESH_TEXTURE_SIZE; i++) // For every scanline for the triangle rendering { scanlineLowest[i] = new ScanLine { u = 1e10f, v = 1e10f, x = 1e10f, y = 1e10f, z = 1e10f }; scanlineHighest[i] = new ScanLine { u = -1e10f, v = -1e10f, x = -1e10f, y = -1e10f, z = -1e10f }; } heightMap = new float[AIMESH_TEXTURE_SIZE * AIMESH_TEXTURE_SIZE]; // Shows occupied or not xMap = new float[AIMESH_TEXTURE_SIZE * AIMESH_TEXTURE_SIZE]; // Shows x yMap = new float[AIMESH_TEXTURE_SIZE * AIMESH_TEXTURE_SIZE]; // Shows y fileStream = new __AIMESHFILE(); fileStream.magic = buffer.ReadChars(8); fileStream.version = buffer.ReadInt32(); fileStream.triangle_count = buffer.ReadInt32(); fileStream.zero = new int[] { buffer.ReadInt32(), buffer.ReadInt32() }; for (var i = 0; i < fileStream.triangle_count; i++) { var triangle = new Triangle(); for (var j = 0; j < 3; j++) { triangle.Face.v1[j] = buffer.ReadSingle(); } for (var j = 0; j < 3; j++) { triangle.Face.v2[j] = buffer.ReadSingle(); } for (var j = 0; j < 3; j++) { triangle.Face.v3[j] = buffer.ReadSingle(); } triangle.unk1 = buffer.ReadInt16(); triangle.unk2 = buffer.ReadInt16(); triangle.triangle_reference = buffer.ReadInt16(); fileStream.triangles[i] = triangle; } outputMesh(AIMESH_TEXTURE_SIZE, AIMESH_TEXTURE_SIZE); ////writeFile(AIMESH_TEXTURE_SIZE, AIMESH_TEXTURE_SIZE); loaded = true; }
public AIMesh(Stream stream) { buffer = new BinaryReader(stream); for (int i = 0; i < AIMESH_TEXTURE_SIZE; i++) // For every scanline for the triangle rendering { scanlineLowest[i] = new ScanLine { u = 1e10f, v = 1e10f, x = 1e10f, y = 1e10f, z = 1e10f }; scanlineHighest[i] = new ScanLine { u = -1e10f, v = -1e10f, x = -1e10f, y = -1e10f, z = -1e10f }; } heightMap = new float[AIMESH_TEXTURE_SIZE * AIMESH_TEXTURE_SIZE]; // Shows occupied or not xMap = new float[AIMESH_TEXTURE_SIZE * AIMESH_TEXTURE_SIZE]; // Shows x yMap = new float[AIMESH_TEXTURE_SIZE * AIMESH_TEXTURE_SIZE]; // Shows y fileStream = new __AIMESHFILE(); fileStream.magic = buffer.ReadChars(8); fileStream.version = buffer.ReadInt32(); fileStream.triangle_count = buffer.ReadInt32(); fileStream.zero = new int[] { buffer.ReadInt32(), buffer.ReadInt32() }; for (var i = 0; i < fileStream.triangle_count; i++) { var triangle = new Triangle(); for (var j = 0; j < 3; j++) triangle.Face.v1[j] = buffer.ReadSingle(); for (var j = 0; j < 3; j++) triangle.Face.v2[j] = buffer.ReadSingle(); for (var j = 0; j < 3; j++) triangle.Face.v3[j] = buffer.ReadSingle(); triangle.unk1 = buffer.ReadInt16(); triangle.unk2 = buffer.ReadInt16(); triangle.triangle_reference = buffer.ReadInt16(); fileStream.triangles[i] = triangle; } outputMesh(AIMESH_TEXTURE_SIZE, AIMESH_TEXTURE_SIZE); ////writeFile(AIMESH_TEXTURE_SIZE, AIMESH_TEXTURE_SIZE); loaded = true; }