/// <summary> /// Open the Save File Browser Dialog with presets settings and a specific filename /// </summary> /// <param name="action">Settings to use</param> /// <param name="fileName">Default filename</param> /// <param name="initialDirectory">Intitial directory</param> /// <returns>Return the path of the file to save, null if none</returns> public static string SaveFileDialogPresetFileName(ActionN64 action, string fileName, string initialDirectory = null) { switch (action) { case ActionN64.WrlConversion: return(SaveFileDialog(fileName, FileConstants.ExtensionObj, FilterObj, initialDirectory)); case ActionN64.DeleteMaterials: return(SaveFileDialog(fileName, FileConstants.ExtensionObj, FilterObj, initialDirectory)); case ActionN64.DeleteUnusedMaterials: return(SaveFileDialog(fileName, FileConstants.ExtensionObj, FilterObj, initialDirectory)); case ActionN64.AddMaterials: return(SaveFileDialog(fileName, FileConstants.ExtensionObj, FilterObj, initialDirectory)); case ActionN64.ModifyObj: return(SaveFileDialog(fileName, FileConstants.ExtensionObj, FilterObj, initialDirectory)); case ActionN64.MergeObjFilesList: case ActionN64.MergeObjFilesDirectory: return(SaveFileDialog(fileName, FileConstants.ExtensionObj, FilterObj, initialDirectory)); case ActionN64.ObjToSmd: return(SaveFileDialog(fileName, FileConstants.ExtensionSmd, FilterSmd, initialDirectory)); case ActionN64.RefModelSmd: return(SaveFileDialog(fileName, FileConstants.ExtensionSmd, FilterSmd, initialDirectory)); case ActionN64.NegativePicture: case ActionN64.FlipTexture: case ActionN64.MirrorTexture: case ActionN64.MakeTransparent: return(SaveFileDialog(fileName, FileConstants.ExtensionPng, FilterPng, initialDirectory)); default: return(SaveFileDialog(string.Empty, string.Empty, FilterAny, initialDirectory)); } }
public static ToolResult ToolObj(ActionN64 action, Dictionary <string, string> inputs) { return(ToolObj(action, inputs, 0)); }
public static ToolResult ToolObj(ActionN64 action, Dictionary <string, string> inputs, ObjOptions objOptions) { string outputFile = null; switch (action) { case ActionN64.WrlConversion: // Convert Wrl to Obj if (inputs.TryGetValue(DictConstants.WrlFile, out string wrlFile)) { if (inputs.TryGetValue(DictConstants.ObjOutput, out outputFile)) { return(ConvertWrlToObj(wrlFile, outputFile, objOptions)); } } break; case ActionN64.WrlsConversion: // Convert Wrl files to Obj if (inputs.TryGetValue(DictConstants.WrlDirectory, out string wrlDirectory)) { return(ConvertWrlsToObj(wrlDirectory, objOptions)); } break; case ActionN64.DeleteMaterials: // Delete Obj Materials if (inputs.TryGetValue(DictConstants.ObjFile, out string objFile)) { if (inputs.TryGetValue(DictConstants.ObjOutput, out outputFile)) { return(DeleteMaterialsObj(objFile, outputFile)); } } break; case ActionN64.DeleteUnusedMaterials: // Delete Unused Obj Materials if (inputs.TryGetValue(DictConstants.ObjFile, out objFile)) { if (inputs.TryGetValue(DictConstants.ObjOutput, out outputFile)) { return(DeleteUnusedMaterialsObj(objFile, outputFile)); } } break; case ActionN64.AddMaterials: // Add Obj Materials if (inputs.TryGetValue(DictConstants.ObjFile, out objFile)) { if (inputs.TryGetValue(DictConstants.ObjOutput, out outputFile)) { return(AddMaterialsObj(objFile, outputFile)); } } break; case ActionN64.ModifyObj: // Modify Obj if (inputs.TryGetValue(DictConstants.ObjFile, out objFile)) { if (inputs.TryGetValue(DictConstants.ObjOutput, out outputFile)) { return(ModifyObj(objFile, outputFile, objOptions, inputs)); } } break; case ActionN64.ObjToSmd: // Obj to Smd if (inputs.TryGetValue(DictConstants.ObjFile, out objFile)) { if (inputs.TryGetValue(DictConstants.SmdOutput, out outputFile)) { bool useTextureName = objOptions.HasFlag(ObjOptions.SmdUseTextureName); return(ConvertObjToSmd(objFile, outputFile, useTextureName)); } } break; case ActionN64.RefModelSmd: // Reference Model if (inputs.TryGetValue(DictConstants.ObjFile, out objFile)) { if (inputs.TryGetValue(DictConstants.SmdOutput, out outputFile)) { return(ConvertRefModelSmd(objFile, outputFile, inputs)); } } break; case ActionN64.MergeObjFilesDirectory: // Merge Obj Files in a Directory if (inputs.TryGetValue(DictConstants.ObjDirectory, out string objDirectory)) { if (inputs.TryGetValue(DictConstants.ObjOutput, out outputFile)) { return(MergeObjFiles(objDirectory, outputFile)); } } break; case ActionN64.MergeObjFilesList: // Merge Obj Files in a List if (inputs.TryGetValue(DictConstants.ObjOutput, out outputFile)) { return(MergeObjFiles(objFileList, outputFile)); } break; } return(new ToolResult(ToolResultEnum.DefaultError)); }
public static ToolResult ToolPictures(ActionN64 action, Dictionary <string, string> inputs, PictureOptions pictureOptions) { switch (action) { case ActionN64.CopyObjTextures: // Copy Obj Textures if (inputs.TryGetValue(DictConstants.ObjFile, out string objFile)) { if (inputs.TryGetValue(DictConstants.OutputDirectory, out string destDir)) { if (inputs.TryGetValue(DictConstants.TextureDir, out string textureDir)) { return(CopyUsedTexturesObj(objFile, destDir, textureDir)); } } } break; case ActionN64.FlipTexture: // Flip a picture if (inputs.TryGetValue(DictConstants.PictureFile, out string pictureFile)) { if (inputs.TryGetValue(DictConstants.PictureOutput, out string outputFile)) { bool horizontal = pictureOptions.HasFlag(PictureOptions.FlipHorizontally); bool vertical = pictureOptions.HasFlag(PictureOptions.FlipVertically); return(FlipTexture(pictureFile, outputFile, horizontal, vertical)); } } break; case ActionN64.MirrorTexture: // Mirror a picture if (inputs.TryGetValue(DictConstants.PictureFile, out pictureFile)) { if (inputs.TryGetValue(DictConstants.PictureOutput, out string outputFile)) { bool horizontal = pictureOptions.HasFlag(PictureOptions.MirrorHorizontally); bool vertical = pictureOptions.HasFlag(PictureOptions.MirrorVertically); return(MirrorTexture(pictureFile, outputFile, horizontal, vertical)); } } break; case ActionN64.MakeTransparent: // Create a transparent picture if (inputs.TryGetValue(DictConstants.AlphaFile, out string alphaFile)) { if (inputs.TryGetValue(DictConstants.TextureFile, out string textureFile)) { if (inputs.TryGetValue(DictConstants.PictureOutput, out string outputFile)) { return(MakeTransparent(alphaFile, textureFile, outputFile)); } } } break; case ActionN64.NegativePicture: // Create a negative picture if (inputs.TryGetValue(DictConstants.PictureFile, out pictureFile)) { if (inputs.TryGetValue(DictConstants.PictureOutput, out string outputFile)) { return(NegativePicture(pictureFile, outputFile)); } } break; case ActionN64.CopyBlacklistTextures: // Copy BlackListed Textures if (inputs.TryGetValue(DictConstants.OutputDirectory, out string outputDirectory)) { return(CopyTexturesBlacklist(outputDirectory)); } break; } return(new ToolResult(ToolResultEnum.DefaultError)); }