示例#1
0
        /// <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));
            }
        }
示例#2
0
 public static ToolResult ToolObj(ActionN64 action, Dictionary <string, string> inputs)
 {
     return(ToolObj(action, inputs, 0));
 }
示例#3
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));
        }
示例#4
0
        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));
        }