コード例 #1
0
        private void FillModelsGridView()
        {
            ModelsGridView.DataSource = null;
            ModelsToImport.Clear();

            foreach (var mesh in SceneToImport.Meshes)
            {
                if (!mesh.Faces.Any(x => x.IndexCount == 3))
                {
                    continue;
                }

                var modelInfo = new ImportModelInfo()
                {
                    Selected      = true,
                    Name          = mesh.Name,
                    TriangleCount = mesh.FaceCount,
                    IsFlexible    = mesh.HasBones,
                    IsTextured    = mesh.HasTextureCoords(0),
                    Mesh          = mesh,
                    SurfaceID     = PreferredSurfaceID >= 0 ? PreferredSurfaceID : 0
                };
                ModelsToImport.Add(modelInfo);
            }

            ModelsGridView.DataSource = ModelsToImport;
        }
コード例 #2
0
        private void RebuildSurfaceList()
        {
            SurfaceList.Clear();
            int existingSurfaces = Project.Surfaces.Max(x => x.SurfaceID);
            int maxSurface       = existingSurfaces;

            if (ModelsToImport.Any())
            {
                maxSurface = Math.Max(maxSurface, ModelsToImport.Max(x => x.SurfaceID));
            }

            for (int i = 0; i <= maxSurface + 1; i++)
            {
                if (i <= existingSurfaces)
                {
                    SurfaceList.Add(new SurfaceItem(i, $"Surface {i}")
                    {
                        ExistingMeshes = Project.Surfaces[i].GetAllMeshReferences().Count()
                    });
                }
                else
                {
                    SurfaceList.Add(new SurfaceItem(i, $"*Surface {i}"));
                }
            }
        }
コード例 #3
0
        private void UpdateRowSurfaceComboBox(DataGridViewRow row)
        {
            var cboCell      = row.Cells[SurfaceColumn.Index] as DataGridViewComboBoxCell;
            var currentModel = row.DataBoundItem as ImportModelInfo;

            var visibleSurfaces = new List <SurfaceItem>();

            foreach (var surface in SurfaceList)
            {
                if (surface.ID == 0)
                {
                    visibleSurfaces.Add(surface);
                    continue;
                }
                int meshCount = surface.ExistingMeshes + ModelsToImport
                                .Count(x => x.Selected && x != currentModel && x.SurfaceID == surface.ID);
            }
        }
コード例 #4
0
        private void CheckUncheckButton_Click(object sender, EventArgs e)
        {
            if (ModelsToImport.Count == 0)
            {
                return;
            }

            int checkedCount   = ModelsToImport.Count(x => x.Selected);
            int uncheckedCount = ModelsToImport.Count(x => !x.Selected);

            foreach (var model in ModelsToImport)
            {
                model.Selected = (checkedCount < uncheckedCount);
            }

            foreach (DataGridViewRow row in ModelsGridView.Rows)
            {
                ModelsGridView.UpdateCellValue(SelectionColumn.Index, row.Index);
            }
        }
コード例 #5
0
 private void ValidateSelection()
 {
     ModelsToImport.RemoveAll(x => !x.Selected);
     DialogResult = DialogResult.OK;
 }