public void launch(RenderEngine renderEngine, FileIO.fileType type) { renderer = renderEngine; this.type = type; switch (type) { case FileIO.fileType.skeletalAnimation: control = renderer.ctrlSA; animations = renderer.models.skeletalAnimation; break; case FileIO.fileType.materialAnimation: control = renderer.ctrlMA; animations = renderer.models.materialAnimation; break; case FileIO.fileType.visibilityAnimation: control = renderer.ctrlVA; animations = renderer.models.visibilityAnimation; break; } control.FrameChanged += Control_FrameChanged; updateList(); }
/// <summary> /// Initializes the control with animation data. /// </summary> /// <param name="renderEngine">Renderer used to render the model</param> /// <param name="ctrl">The animation control</param> /// <param name="anms">The list with animations</param> /// <param name="t">The animation type (used on Export/Import options)</param> public void initialize(RenderEngine renderEngine, RenderEngine.animationControl ctrl, RenderBase.OAnimationListBase anms, FileIO.fileType t) { renderer = renderEngine; control = ctrl; animations = anms; type = t; control.FrameChanged += Control_FrameChanged; updateList(); }
public void launch(RenderEngine renderEngine, RenderEngine.animationControl <T> control, List <T> animations, FileIO.fileType type) { renderer = renderEngine; this.type = type; this.animations = animations; this.control = control; control.FrameChanged += Control_FrameChanged; updateList(); }
static void Main(string[] args) { //You can manually set the args here for debug/etc. //args = new string[] { "-e", "container.arc", "container"}; try { object importedData = null; if (args.Length == 0) { Console.WriteLine("Error: No args"); } else { int i = 0; foreach (string arg in args) { if (arg[0] == '-') { if (arg[1] == 'e') //Export { string fileName = args[i + 1]; FileIO.fileType fileType = FileIO.strToFileType(args[i + 2]); Console.WriteLine("Exporting: " + fileName); importedData = FileIO.import(fileName); FileIO.export(fileType, importedData, 0); } else { Console.WriteLine("Unknown arg: '-" + arg[1] + "'"); } } i++; } } } catch (Exception e) { Console.WriteLine(""); Console.WriteLine(e.Message); } Console.WriteLine(""); //uncomment for better debugging //Console.ReadKey(); }
/// <summary> /// Exports a file of a given type. /// Formats available to export will depend on the type of the data. /// </summary> /// <param name="type">Type of the data to be exported</param> /// <param name="data">The data</param> /// <param name="arguments">Optional arguments to be used by the exporter</param> public static void export(FileIO.fileType type, object data, params int[] arguments) { using (SaveFileDialog saveDlg = new SaveFileDialog()) { switch (type) { case FileIO.fileType.model: OModelExportForm exportMdl = new OModelExportForm((RenderBase.OModelGroup)data, arguments[0]); exportMdl.Show(); break; case FileIO.fileType.texture: OTextureExportForm exportTex = new OTextureExportForm((RenderBase.OModelGroup)data, arguments[0]); exportTex.Show(); break; case FileIO.fileType.skeletalAnimation: saveDlg.Title = "Export Skeletal Animation"; saveDlg.Filter = "Source Model|*.smd"; if (saveDlg.ShowDialog() == DialogResult.OK) { switch (saveDlg.FilterIndex) { case 1: var warnings = SMD.export((RenderBase.OModelGroup)data, saveDlg.FileName, arguments[0], arguments[1]); foreach (var warning in warnings) { MessageBox.Show(warning, "SMD Exporter", MessageBoxButtons.OK, MessageBoxIcon.Error); } break; } } break; } } }
/// <summary> /// Imports a file of the given type. /// Returns data relative to the chosen type. /// </summary> /// <param name="type">The type of the data</param> /// <returns></returns> public static object import(FileIO.fileType type) { using (OpenFileDialog openDlg = new OpenFileDialog()) { openDlg.Multiselect = true; switch (type) { case FileIO.fileType.model: openDlg.Title = "Import models"; openDlg.Filter = "All files|*.*"; if (openDlg.ShowDialog() == DialogResult.OK) { List <RenderBase.OModel> output = new List <RenderBase.OModel>(); foreach (string fileName in openDlg.FileNames) { output.AddRange(((RenderBase.OModelGroup)FileIO.load(fileName).data).model); } return(output); } break; case FileIO.fileType.texture: openDlg.Title = "Import textures"; openDlg.Filter = "All files|*.*"; if (openDlg.ShowDialog() == DialogResult.OK) { List <RenderBase.OTexture> output = new List <RenderBase.OTexture>(); foreach (string fileName in openDlg.FileNames) { FileIO.file file = FileIO.load(fileName); switch (file.type) { case FileIO.formatType.model: output.AddRange(((RenderBase.OModelGroup)file.data).texture); break; case FileIO.formatType.texture: output.AddRange((List <RenderBase.OTexture>)file.data); break; case FileIO.formatType.image: output.Add((RenderBase.OTexture)file.data); break; } } return(output); } break; case FileIO.fileType.skeletalAnimation: openDlg.Title = "Import skeletal animations"; openDlg.Filter = "All files|*.*"; if (openDlg.ShowDialog() == DialogResult.OK) { List <RenderBase.OSkeletalAnimation> output = new List <RenderBase.OSkeletalAnimation>(); foreach (string fileName in openDlg.FileNames) { output.AddRange(((RenderBase.OModelGroup)FileIO.load(fileName).data).skeletalAnimation); } return(output); } break; case FileIO.fileType.materialAnimation: openDlg.Title = "Import material animations"; openDlg.Filter = "All files|*.*"; if (openDlg.ShowDialog() == DialogResult.OK) { List <RenderBase.OMaterialAnimation> output = new List <RenderBase.OMaterialAnimation>(); foreach (string fileName in openDlg.FileNames) { output.AddRange(((RenderBase.OModelGroup)FileIO.load(fileName).data).materialAnimation); } return(output); } break; case FileIO.fileType.visibilityAnimation: openDlg.Title = "Import visibility animations"; openDlg.Filter = "All files|*.*"; if (openDlg.ShowDialog() == DialogResult.OK) { List <RenderBase.OVisibilityAnimation> output = new List <RenderBase.OVisibilityAnimation>(); foreach (string fileName in openDlg.FileNames) { output.AddRange(((RenderBase.OModelGroup)FileIO.load(fileName).data).visibilityAnimation); } return(output); } break; } } return(null); }