public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { using (OpenFileDialog ofd = new OpenFileDialog()) { string directory; if (!dialogDirs.TryGetValue(GetType(), out directory)) { directory = InitialDirectory ?? ""; dialogDirs.Add(GetType(), directory); } ofd.InitialDirectory = directory; ofd.RestoreDirectory = true; ofd.Filter = Filter; // set file filter info here if (ofd.ShowDialog() == DialogResult.OK) { var fileName = ofd.FileName; dialogDirs[GetType()] = Path.GetDirectoryName(fileName); if (Path.IsPathRooted(fileName)) { fileName = ContentUtils.MakeRelativePath(Builder.FullInputDirectory + @"\", fileName); } return(fileName); } } return(value); }
public LocalFile(string baseDir, string fullPath) { this.Handled = false; this.BaseDir = baseDir; this.FullPath = fullPath; this.KeyPath = ContentUtils.BackslashesToSlashes(ContentUtils.MakeRelativePath(baseDir + "/", fullPath)); }
public static bool OpenFileDialog(string caption, string filter, string dir, bool getRelativePath, out string fileName) { fileName = null; using (OpenFileDialog ofd = new OpenFileDialog()) { ofd.InitialDirectory = Path.Combine(Builder.FullInputDirectory, dir); ofd.RestoreDirectory = true; ofd.Filter = filter; ofd.Title = caption; // set file filter info here if (ofd.ShowDialog() == DialogResult.OK) { fileName = ofd.FileName; if (Path.IsPathRooted(fileName) && getRelativePath) { fileName = ContentUtils.MakeRelativePath(Builder.FullInputDirectory + @"\", fileName); } return(true); } else { return(false); } } }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) { if (lastDir == null) { lastDir = GetBuilderContentFolder(); baseDir = lastDir; } using (OpenFileDialog ofd = new OpenFileDialog()) { ofd.Filter = "Image Files (*.tga;*.jpg;*.dds;*.png)|*.tga;*.jpg;*.dds;*.png"; ofd.InitialDirectory = lastDir; if (ofd.ShowDialog() == DialogResult.OK) { lastDir = Path.GetDirectoryName(ofd.FileName); return(ContentUtils.MakeRelativePath(baseDir + "/", ofd.FileName)); //return GameContent.RemovePathBase( ofd.FileName, "Content" ); } } return(value); }
static int Main(string[] args) { Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; Log.AddListener(new StdLogListener()); var options = new Options(); var parser = new CommandLineParser(options.GetType()); try { // parse arguments : parser.ParseCommandLine(options, args); // change extension of output not set : if (options.Output == null) { options.Output = Path.ChangeExtension(options.Input, ".scene"); } // // run fbx loader : // Log.Message("Reading FBX: {0}", options.Input); var loader = new FbxLoader(); using (var scene = loader.LoadScene(options.Input, options)) { // // Save scene : // Log.Message("Preparation..."); foreach (var mesh in scene.Meshes) { if (mesh != null) { mesh.MergeVertices(options.MergeTolerance); mesh.DefragmentSubsets(scene, true); mesh.ComputeTangentFrame(); mesh.ComputeBoundingBox(); } } Log.Message("Merging instances..."); scene.DetectAndMergeInstances(); #if false if (options.BaseDirectory != null) { Log.Message("Resolving assets path..."); var relativePath = ContentUtils.MakeRelativePath(options.BaseDirectory + @"\", options.Input); var relativeDir = Path.GetDirectoryName(relativePath); var sceneDir = Path.GetDirectoryName(options.Input); Log.Message("...scene directory : {0}", sceneDir); Log.Message("...scene base directory : {0}", options.BaseDirectory); Log.Message("...scene relative path : {0}", relativePath); Log.Message("...scene relative dir : {0}", relativeDir); foreach (var mtrl in scene.Materials) { ResolveMaterial(mtrl, relativeDir, sceneDir); } } #endif // // Save scene : // Log.Message("Writing binary file: {0}", options.Output); using (var stream = File.OpenWrite(options.Output)) { scene.Save(stream); } if (!string.IsNullOrWhiteSpace(options.Report)) { var reportPath = options.Report; Log.Message("Writing report: {0}", reportPath); File.WriteAllText(reportPath, SceneReport.CreateHtmlReport(scene)); } } Log.Message("Done."); } catch (Exception e) { parser.PrintError("{0}", e.ToString()); if (options.Wait) { Log.Message("Press any key to continue..."); Console.ReadKey(); } return(1); } if (options.Wait) { Log.Message("Press any key to continue..."); Console.ReadKey(); } return(0); }
/// <summary> /// Gets relative to input directory path for to specified file /// </summary> /// <param name="fullPath"></param> /// <returns></returns> public static string GetRelativePath(string fullPath) { return(ContentUtils.MakeRelativePath(Builder.FullInputDirectory + @"\", fullPath)); }