/// <summary> /// Cargar meshes del directorio especificado /// </summary> public void loadFolderContent(string folderPath) { textBoxFolderPath.Text = browseDialog.FileName; panelItems.Controls.Clear(); if (Directory.Exists(folderPath)) { //Obtener todas las carpetas del directorio string[] allDirs = Directory.GetDirectories(folderPath); //Excluir subdirectorios innecesarios List<string> dirs = new List<string>(); for (int i = 0; i < allDirs.Length; i++) { if (!allDirs[i].Contains(".svn")) { dirs.Add(allDirs[i]); } } //Ver cuales son directorios simples y cuales tienen un -TgcScene.xml adentro List<MeshItemControl> meshes = new List<MeshItemControl>(); foreach (string dirPath in dirs) { //Buscar si hay algun mesh adentro del directorio string[] files = Directory.GetFiles(dirPath, "*-TgcScene.xml", SearchOption.TopDirectoryOnly); //Tiene que haber uno solo if (files.Length == 1) { //Ver si tiene imagen de preview FileInfo fi = new FileInfo(files[0]); string previewImagePath = fi.Directory.FullName + "\\preview.jpg"; if (!File.Exists(previewImagePath)) { previewImagePath = null; } //Crear item de mesh MeshItemControl item = new MeshItemControl(files[0], previewImagePath, this, false); meshes.Add(item); } //No tiene mesh, es un directorio comun else { //Crear item de directorio MeshItemControl item = new MeshItemControl(dirPath, null, this, true); panelItems.Controls.Add(item); } } //Agregar todos los items de mesh al final panelItems.Controls.AddRange(meshes.ToArray()); //Seleccionar primer elemento if (panelItems.Controls.Count > 0) { ((MeshItemControl)panelItems.Controls[0]).selectItem(); } } }
/// <summary> /// Cargar meshes del directorio especificado /// </summary> public void loadFolderContent(string folderPath) { textBoxFolderPath.Text = browseDialog.FileName; //Limpiar controles anteriores foreach (MeshItemControl c in panelItems.Controls) { c.dispose(); } panelItems.Controls.Clear(); if (Directory.Exists(folderPath)) { //Obtener todas las carpetas del directorio string[] allDirs = Directory.GetDirectories(folderPath); //Excluir subdirectorios innecesarios List <string> dirs = new List <string>(); for (int i = 0; i < allDirs.Length; i++) { if (!allDirs[i].Contains(".svn")) { dirs.Add(allDirs[i]); } } //Ver cuales son directorios simples y cuales tienen un -TgcScene.xml adentro List <MeshItemControl> meshes = new List <MeshItemControl>(); foreach (string dirPath in dirs) { //Buscar si hay algun mesh adentro del directorio string[] files = Directory.GetFiles(dirPath, "*-TgcScene.xml", SearchOption.TopDirectoryOnly); //Si hay al menos uno en el directorio if (files.Length > 0) { //Ver si tiene imagen de preview FileInfo fi = new FileInfo(files[0]); string previewImagePath = fi.Directory.FullName + "\\preview.jpg"; if (!File.Exists(previewImagePath)) { previewImagePath = null; } //Crear un item de mesh para cada uno foreach (string file in files) { MeshItemControl item = new MeshItemControl(file, previewImagePath, this, false); meshes.Add(item); } } //No tiene mesh, es un directorio comun else { //Crear item de directorio MeshItemControl item = new MeshItemControl(dirPath, null, this, true); panelItems.Controls.Add(item); } } //Agregar todos los items de mesh al final panelItems.Controls.AddRange(meshes.ToArray()); //Seleccionar primer elemento if (panelItems.Controls.Count > 0) { ((MeshItemControl)panelItems.Controls[0]).selectItem(); } } }