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();
 }
Example #3
0
 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();
 }
Example #4
0
        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();
        }
        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();
        }
Example #6
0
        /// <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;
                }
            }
        }
Example #7
0
        /// <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);
        }