Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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();
            }
        }
Ejemplo n.º 3
0
        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();
            }
        }