public void Parse(EndianBinaryReader reader, uint count) { for (uint i = 0; i < count; i++) { BCOTri tri = new BCOTri(); tri.index1 = reader.ReadInt32(); tri.index2 = reader.ReadInt32(); tri.index3 = reader.ReadInt32(); tri.unk1 = reader.ReadSingle(); tri.unk2 = reader.ReadInt16(); tri.unk3 = reader.ReadInt16(); tri.unk4 = reader.ReadInt16(); tri.collisionFlag = reader.ReadInt16(); tri.unk5 = reader.ReadInt16(); tri.unk6 = reader.ReadInt16(); tri.unk7 = reader.ReadInt16(); tri.unk8 = reader.ReadInt16(); reader.ReadBytes(0x04); // probably padding tri.colStr = tri.collisionFlag.ToString("X4"); tris.Add(tri); } }
private void trisListBox_SelectedIndexChanged(object sender, EventArgs e) { if (selectedList != 0) { GL.DeleteLists(selectedList, 1); } propertyGrid1.SelectedObject = trisListBox.SelectedItem; if (trisListBox.SelectedIndex != -1) { Vector3 set1, set2, set3; BCOTri bcoTri = (BCOTri)trisListBox.SelectedItem; set1 = vecList[bcoTri.index1]; set2 = vecList[bcoTri.index2]; set3 = vecList[bcoTri.index3]; selectedList = GL.GenLists(1); GL.NewList(selectedList, ListMode.Compile); GL.LineWidth(5f); GL.Begin(BeginMode.Lines); GL.Color4(1.000f, 0.255f, 0.212f, 1f); GL.Vertex3(set1.X, set1.Y, set1.Z); GL.Vertex3(set2.X, set2.Y, set2.Z); GL.End(); GL.Begin(BeginMode.Lines); GL.Color4(1.000f, 0.255f, 0.212f, 1f); GL.Vertex3(set2.X, set2.Y, set2.Z); GL.Vertex3(set3.X, set3.Y, set3.Z); GL.End(); GL.Begin(BeginMode.Lines); GL.Color4(1.000f, 0.255f, 0.212f, 1f); GL.Vertex3(set3.X, set3.Y, set3.Z); GL.Vertex3(set1.X, set1.Y, set1.Z); GL.End(); GL.EndList(); glControl1.Update(); } }
private void selectFacesWithCollisionTypeToolStripMenuItem_Click(object sender, EventArgs e) { if (trisListBox.SelectedIndex != -1) { BCOTri selectedTri = (BCOTri)trisListBox.SelectedItem; short colFlag = selectedTri.collisionFlag; selectedList = GL.GenLists(1); GL.NewList(selectedList, ListMode.Compile); foreach (BCOTri tri in trisListBox.Items) { if (tri.collisionFlag == colFlag) { Vector3 set1, set2, set3; set1 = vecList[tri.index1]; set2 = vecList[tri.index2]; set3 = vecList[tri.index3]; GL.LineWidth(5f); GL.Begin(BeginMode.Lines); GL.Color4(1.000f, 0.255f, 0.212f, 1f); GL.Vertex3(set1.X, set1.Y, set1.Z); GL.Vertex3(set2.X, set2.Y, set2.Z); GL.End(); GL.Begin(BeginMode.Lines); GL.Color4(1.000f, 0.255f, 0.212f, 1f); GL.Vertex3(set2.X, set2.Y, set2.Z); GL.Vertex3(set3.X, set3.Y, set3.Z); GL.End(); GL.Begin(BeginMode.Lines); GL.Color4(1.000f, 0.255f, 0.212f, 1f); GL.Vertex3(set3.X, set3.Y, set3.Z); GL.Vertex3(set1.X, set1.Y, set1.Z); GL.End(); } } GL.EndList(); glControl1.Update(); } }