Example #1
0
        public string RunMyFunction(string basedir, Test3DEngine engine, string representid, string socket, SqlConnection conn)
        {
            Form1 frm = new Form1(basedir, engine, representid, socket, conn);

            frm.ShowDialog();
            return(frm.m_strFirstDesc);
        }
Example #2
0
 public string show4ff(string strPath, string strDefaultFile, Test3DEngine engine, SqlConnection conn)
 {
     if (null == fs)
     {
         fs = new frmSelect(engine, conn);
     }
     fs.strSelectedFileName = strDefaultFile;
     fs.Text    = "请选择文件";
     fs.nQueMax = 10;
     //fs.strFilter = ";.mdl;.mtl;.ani;.mesh;";
     fs.strFilter  = ";.mdl;.ani;.tani;.mesh;";
     fs.showFolder = true;
     fs.LoadFolder(strPath);
     System.Windows.Forms.DialogResult r = fs.ShowDialog();
     if (r == System.Windows.Forms.DialogResult.OK)
     {
         string srt = fs.strSelectedFileName;
         //fs.Hide();
         return(fs.strSelectedFileName);
     }
     else
     {
         //fs.Hide();
         return(null);
     }
 }
Example #3
0
 private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
 {
     if (K3DEngine != null)
     {
         K3DEngine.UnInit();
         K3DEngine = null;
     }
 }
Example #4
0
        /// <summary>
        /// 设置spr文件名,会自动出现预览界面
        /// </summary>
        /// <param name="strFileName">SPR文件名,包含全路经</param>
        public void SetFileName(string strFileName, Test3DEngine engine)
        {
            if (strFileName.LastIndexOf('.') == -1)
            {
                throw (new Exception("传入文件名不合法"));
            }

            string strExt = strFileName.Substring(strFileName.LastIndexOf('.') + 1).ToLower();

            ft.timer1.Enabled   = false;
            ft.labError.Visible = false;
            this.strFileName    = strFileName;

            if (!File.Exists(strFileName))
            {
                ft.labError.Visible = true;
                ft.pb1.Image        = new Bitmap(10, 10);
                return;
            }

            SPRItem si;

            if (strExt == "mdl")
            {
                si = new SPRItem(strFileName, SPRItem.PIC_TYPE.MDL, engine);
            }
            else if (strExt == "mtl")
            {
                si = new SPRItem(strFileName, SPRItem.PIC_TYPE.MTL, engine);
            }
            else if (strExt == "mesh")
            {
                si = new SPRItem(strFileName, SPRItem.PIC_TYPE.MESH, engine);
            }
            else if (strExt == "ani")
            {
                si = new SPRItem(strFileName, SPRItem.PIC_TYPE.ANI, engine);
            }
            else if (strExt == "tani")
            {
                si = new SPRItem(strFileName, SPRItem.PIC_TYPE.ANI, engine);
            }
            else //spr
            {
                si = new SPRItem(strFileName);
            }

            ft.sio            = si;
            ft.timer1.Enabled = true;
        }
Example #5
0
File: doit.cs Project: viticm/pap2
        /// <summary>
        /// 设置spr文件名,会自动出现预览界面
        /// </summary>
        /// <param name="strFileName">SPR文件名,包含全路经</param>
        public void SetFileName(string strFileName, Test3DEngine engine)
        {
            if (strFileName.LastIndexOf('.') == -1)
            {
                throw (new Exception("传入文件名不合法"));
            }

            string strExt = strFileName.Substring(strFileName.LastIndexOf('.') + 1).ToLower();
            ft.timer1.Enabled = false;
            ft.labError.Visible = false;
            this.strFileName = strFileName;

            if(!File.Exists(strFileName))
            {
                ft.labError.Visible = true;
                ft.pb1.Image = new Bitmap(10, 10);
                return;
            }

            SPRItem si;
            if(strExt == "mdl")
            {
                si = new SPRItem(strFileName, SPRItem.PIC_TYPE.MDL, engine);
            }
            else if(strExt == "mtl")
            {
                si = new SPRItem(strFileName, SPRItem.PIC_TYPE.MTL, engine);
            }
            else if (strExt == "mesh")
            {
                si = new SPRItem(strFileName, SPRItem.PIC_TYPE.MESH, engine);
            }
            else if (strExt == "ani")
            {
                si = new SPRItem(strFileName, SPRItem.PIC_TYPE.ANI, engine);
            }
            else if (strExt == "tani")
            {
                si = new SPRItem(strFileName, SPRItem.PIC_TYPE.ANI, engine);
            }
            else //spr
            {
                si = new SPRItem(strFileName);
            }

            ft.sio = si;
            ft.timer1.Enabled = true;
        }
Example #6
0
File: Form1.cs Project: viticm/pap2
        public Form1(string enginedir, Test3DEngine engine, string representid, string socket, SqlConnection conn)
        {
            InitializeComponent();

            m_EngineDir = enginedir;
            m_engine = engine;
            m_RepresentID = representid;
            m_Socket = socket;
            Conn = conn;

            m_sql = string.Format("SELECT Model FROM npc WHERE RepresentID = {0}", representid);
            DataTable tbl_npc = Helper.GetDataTable(m_sql, Conn);
            string strTitle = string.Format("{0} - {1}, {2}, {3}", this.Text, representid, tbl_npc.Rows[0][0], socket);
            this.Text = strTitle;

            UpdateGVData();
        }
Example #7
0
        public Form1(string enginedir, Test3DEngine engine, string representid, string socket, SqlConnection conn)
        {
            InitializeComponent();

            m_EngineDir   = enginedir;
            m_engine      = engine;
            m_RepresentID = representid;
            m_Socket      = socket;
            Conn          = conn;

            m_sql = string.Format("SELECT Model FROM npc WHERE RepresentID = {0}", representid);
            DataTable tbl_npc  = Helper.GetDataTable(m_sql, Conn);
            string    strTitle = string.Format("{0} - {1}, {2}, {3}", this.Text, representid, tbl_npc.Rows[0][0], socket);

            this.Text = strTitle;

            UpdateGVData();
        }
Example #8
0
        private void Form1_Load(object sender, EventArgs e)
        {
            //ArrayList[] a = { new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList() };
            //ArrayList elem = (ArrayList)a[0];
            //elem.Add("aaa");
            m_strSockets    = new string[9];
            m_strSockets[0] = "s_hat"; m_strSockets[1] = "s_spine2"; m_strSockets[2] = "s_spine";
            m_strSockets[3] = "s_rp";  m_strSockets[4] = "s_lp";     m_strSockets[5] = "s_rc";
            m_strSockets[6] = "s_lc";  m_strSockets[7] = "s_rh";     m_strSockets[8] = "s_lh";

            m_HeadFilePath = new ArrayList();
            m_HandFilePath = new ArrayList();
            m_LegFilePath  = new ArrayList();
            m_BodyFilePath = new ArrayList();
            m_BeltFilePath = new ArrayList();
            m_FaceFilePath = new ArrayList();
            m_AniFilePath  = new ArrayList();
            m_ItemFilePath = new ArrayList();
            m_MdlFile      = new ArrayList();
            m_3DEngie      = new Test3DEngine();
            m_3DEngie.Init((int)this.pictureBox1.Handle);

            string DirName    = Application.StartupPath;
            string PlayerName = DirName + "\\Data\\public\\PlayerCheckTool\\Checker.mdl";
            // DirName + "\\Data\\public\\PlayerCheckTool\\Checker_skin.ani";
            string AniFileName = DirName + "\\data\\source\\player\\F2\\动作\\F2b01aq攻击22.ani";

            m_3DEngie.LoadPlayerModel(PlayerName);
            m_3DEngie.LoadAni(AniFileName);
            m_PartDirPath = PlayerPathText.Text;
            FindModelInDirectory(PlayerPathText.Text);
            for (int i = m_MdlFile.Count - 1; i >= 0; i--)
            {
                this.Player_comboBox.Items.Add(m_MdlFile[i]);
            }
            ItemsRefresh();
            this.Player_comboBox.SelectedIndex = 0;
            if (Ani_listBox.Items.Count > 0)
            {
                this.Ani_listBox.SelectedIndex = 0;
            }
        }
Example #9
0
        public string show4ff_new_socket(int representid, string socketname, string strBasePath, string strBrowsePath, string strDefaultFile, Test3DEngine engine, string strFilter, SqlConnection conn)
        {
            string sql = string.Format("SELECT FileName FROM dic_npc_socket_desc WHERE RepresentID = {0} AND Socket = '{1}'", representid, socketname);
            DataTable tbl = GetDataTable(sql, conn);

            if (null == fs)
            {
                fs = new frmSelect(engine, conn);
            }

            fs.Label3.Enabled = true;
            fs.ButtonX5.Enabled = true;
            fs.ComboBox1.Enabled = true;

            fs.ComboBox1.Items.Clear();
            foreach (DataRow row in tbl.Rows)
            {
                fs.ComboBox1.Items.Add(row[0].ToString());
            }

            return show4ff_new(strBasePath, strBrowsePath, strDefaultFile, engine, strFilter, conn);
        }
Example #10
0
File: Form1.cs Project: viticm/pap2
        private void Form1_Load(object sender, EventArgs e)
        {
            //ArrayList[] a = { new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList(), new ArrayList() };
            //ArrayList elem = (ArrayList)a[0];
            //elem.Add("aaa");
            m_strSockets = new string[9];
            m_strSockets[0] = "s_hat"; m_strSockets[1] = "s_spine2"; m_strSockets[2] = "s_spine";
            m_strSockets[3] = "s_rp";  m_strSockets[4] = "s_lp";     m_strSockets[5] = "s_rc";
            m_strSockets[6] = "s_lc";  m_strSockets[7] = "s_rh";     m_strSockets[8] = "s_lh";

            m_HeadFilePath = new ArrayList();
            m_HandFilePath = new ArrayList();
            m_LegFilePath = new ArrayList();
            m_BodyFilePath = new ArrayList();
            m_BeltFilePath = new ArrayList();
            m_FaceFilePath = new ArrayList();
            m_AniFilePath = new ArrayList();
            m_ItemFilePath = new ArrayList();
            m_MdlFile = new ArrayList();
            m_3DEngie = new Test3DEngine();
            m_3DEngie.Init((int)this.pictureBox1.Handle);

            string DirName = Application.StartupPath;
            string PlayerName = DirName + "\\Data\\public\\PlayerCheckTool\\Checker.mdl";
            // DirName + "\\Data\\public\\PlayerCheckTool\\Checker_skin.ani";
            string AniFileName = DirName + "\\data\\source\\player\\F2\\动作\\F2b01aq攻击22.ani";
            m_3DEngie.LoadPlayerModel(PlayerName);
            m_3DEngie.LoadAni(AniFileName);
            m_PartDirPath = PlayerPathText.Text;
            FindModelInDirectory(PlayerPathText.Text);
            for (int i = m_MdlFile.Count-1; i >= 0; i--)
                this.Player_comboBox.Items.Add(m_MdlFile[i]);
            ItemsRefresh();
            this.Player_comboBox.SelectedIndex = 0;
            if (Ani_listBox.Items.Count > 0)
                this.Ani_listBox.SelectedIndex = 0;        
                     
        }
Example #11
0
        public string show4ff_new(string strBasePath, string strBrowsePath, string strDefaultFile, Test3DEngine engine, string strFilter, SqlConnection conn)
        {
            m_strBase = strBasePath;
            sprViewer.SPRItem.IconFolder = strBasePath;

            if (null == fs)
            {
                fs = new frmSelect(engine, conn);
            }

            fs.strSelectedFileName = strDefaultFile;
            fs.Text = "请选择文件";
            fs.nQueMax = 10;
            switch (strFilter.ToLower())
            {
                case "mdl,mesh":fs.strFilter = ";.mesh;.mdl;";              break;
                case "mesh":    fs.strFilter = ";.mesh;";                   break;
                case "mdl":     fs.strFilter = ";.mdl;";                    break;
                case "ani":     fs.strFilter = ";.ani;.tani;";              break;
                default:        throw new Exception("unrecognized type.");
            }
            fs.showFolder = true;
            fs.LoadFolder(strBrowsePath);
            System.Windows.Forms.DialogResult r = fs.ShowDialog();
            if (r == System.Windows.Forms.DialogResult.OK)
            {
                string srt = fs.strSelectedFileName.Replace(strBasePath, string.Empty);
                //fs.Hide();
                return srt;
            }
            else
            {
                //fs.Hide();
                return null;
            }
        }
Example #12
0
 public frmSelect(Test3DEngine engine, SqlConnection conn)
 {
     m_engine = engine;
     Conn     = conn;
     Init();
 }
Example #13
0
        private void doInitPreview(int iOption)
        {
            int old_wrong_index = this.tabControl1.SelectedTabIndex;
            int new_right_index = init_preview_index;
            // new_right_index 是从1 开始的下标。
            string strTabIndex = "[" + new_right_index.ToString() + "]";

            if (Program.EngineDir.Trim().Length <= 0)
            {
                if (!m_bWarning3dEngine)
                {
                    m_bWarning3dEngine = true;
                    MessageBox.Show("3DEngine 路径为空,不能正常打开预览窗口", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                return;
            }

            string strdir = "";
            if (Program.EngineDir.Substring(Program.EngineDir.Length - 1) != "\\")
                strdir = Program.EngineDir + "\\";
            else
                strdir = Program.EngineDir;

            if (m_3DEngie == null)
            {
                bool bSuc = Helper.RegComDll("atlax.dll");
                
                m_3DEngie = new Test3DEngine();

                if (m_3DEngie == null)
                {
                    MessageBox.Show("3D Engine 初始化失败!m_3DEngie = null。");
                    return;
                }

                m_3DEngie.Init((int)(preview_panels[new_right_index - 1].Handle), Program.EngineDir, Application.StartupPath);

                // 传给mainform, 让它关闭时uninit 引擎。
                ((MainForm)ParentForm).K3DEngine = m_3DEngie;

                string content = string.Format(@"
RegComDll: {0}
m_3DEngie: {1}
EngineDir: {2}
Engine:    {3}
Enginenull:{4}
", bSuc, m_3DEngie, strdir, m_3DEngie, m_3DEngie == null?"null":"not null");

                FileFolderHelper.StringToFile(content, Application.StartupPath + "/GameDesignerTools.log");
            }

            m_lua["EngineDir"] = strdir;
            m_lua["Engine"] = m_3DEngie;

            int count;
            m_3DEngie.GetEditorSceneCount(ModelName + strTabIndex, out count);
            if (count > 0)
                return;

            m_3DEngie.AddScene((int)preview_panels[new_right_index - 1].Handle, ModelName + strTabIndex, iOption);

            //string DirName = strdir;
            //string PlayerName = DirName + "\\Data\\public\\PlayerCheckTool\\Male\\Normal\\M2.mdl";
            //string AniFileName = DirName + "\\data\\source\\player\\M2\\动作\\M2b04ty空手普通待机.ani";
            //m_3DEngie.LoadPlayerModel(PlayerName);
            //m_3DEngie.LoadAni(AniFileName, 1);

            this.SetTmrRenderInterval(Program.m_3d_tmrRender);
            tmrRender.Enabled = true;

            PreviewBar.Visible = true;
            PreviewBar.RecalcLayout();
            this.ResumeLayout();
        }
Example #14
0
        public string show4ff_new(string strBasePath, string strBrowsePath, string strDefaultFile, Test3DEngine engine, string strFilter, SqlConnection conn)
        {
            m_strBase = strBasePath;
            sprViewer.SPRItem.IconFolder = strBasePath;

            if (null == fs)
            {
                fs = new frmSelect(engine, conn);
            }

            fs.strSelectedFileName = strDefaultFile;
            fs.Text    = "请选择文件";
            fs.nQueMax = 10;
            switch (strFilter.ToLower())
            {
            case "mdl,mesh": fs.strFilter = ";.mesh;.mdl;";              break;

            case "mesh":    fs.strFilter = ";.mesh;";                   break;

            case "mdl":     fs.strFilter = ";.mdl;";                    break;

            case "ani":     fs.strFilter = ";.ani;.tani;";              break;

            default:        throw new Exception("unrecognized type.");
            }
            fs.showFolder = true;
            fs.LoadFolder(strBrowsePath);
            System.Windows.Forms.DialogResult r = fs.ShowDialog();
            if (r == System.Windows.Forms.DialogResult.OK)
            {
                string srt = fs.strSelectedFileName.Replace(strBasePath, string.Empty);
                //fs.Hide();
                return(srt);
            }
            else
            {
                //fs.Hide();
                return(null);
            }
        }
Example #15
0
        public string show4ff_new_socket(int representid, string socketname, string strBasePath, string strBrowsePath, string strDefaultFile, Test3DEngine engine, string strFilter, SqlConnection conn)
        {
            string    sql = string.Format("SELECT FileName FROM dic_npc_socket_desc WHERE RepresentID = {0} AND Socket = '{1}'", representid, socketname);
            DataTable tbl = GetDataTable(sql, conn);

            if (null == fs)
            {
                fs = new frmSelect(engine, conn);
            }

            fs.Label3.Enabled    = true;
            fs.ButtonX5.Enabled  = true;
            fs.ComboBox1.Enabled = true;

            fs.ComboBox1.Items.Clear();
            foreach (DataRow row in tbl.Rows)
            {
                fs.ComboBox1.Items.Add(row[0].ToString());
            }

            return(show4ff_new(strBasePath, strBrowsePath, strDefaultFile, engine, strFilter, conn));
        }
Example #16
0
 //for other
 public SPRItem(string strFileName, PIC_TYPE pictype, Test3DEngine engine)
 {
     Init(strFileName, pictype, engine, false);
 }
Example #17
0
 public SPRItem(string strFileName, PIC_TYPE pictype, Test3DEngine engine, bool bForceRefresh)
 {
     Init(strFileName, pictype, engine, bForceRefresh);
 }
Example #18
0
        private void doInitPreview(int iOption)
        {
            int old_wrong_index = this.tabControl1.SelectedTabIndex;
            int new_right_index = init_preview_index;
            // new_right_index 是从1 开始的下标。
            string strTabIndex = "[" + new_right_index.ToString() + "]";

            if (Program.EngineDir.Trim().Length <= 0)
            {
                if (!m_bWarning3dEngine)
                {
                    m_bWarning3dEngine = true;
                    MessageBox.Show("3DEngine 路径为空,不能正常打开预览窗口", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                }
                return;
            }

            string strdir = "";

            if (Program.EngineDir.Substring(Program.EngineDir.Length - 1) != "\\")
            {
                strdir = Program.EngineDir + "\\";
            }
            else
            {
                strdir = Program.EngineDir;
            }

            if (m_3DEngie == null)
            {
                bool bSuc = Helper.RegComDll("atlax.dll");

                m_3DEngie = new Test3DEngine();

                if (m_3DEngie == null)
                {
                    MessageBox.Show("3D Engine 初始化失败!m_3DEngie = null。");
                    return;
                }

                m_3DEngie.Init((int)(preview_panels[new_right_index - 1].Handle), Program.EngineDir, Application.StartupPath);

                // 传给mainform, 让它关闭时uninit 引擎。
                ((MainForm)ParentForm).K3DEngine = m_3DEngie;

                string content = string.Format(@"
RegComDll: {0}
m_3DEngie: {1}
EngineDir: {2}
Engine:    {3}
Enginenull:{4}
", bSuc, m_3DEngie, strdir, m_3DEngie, m_3DEngie == null?"null":"not null");

                FileFolderHelper.StringToFile(content, Application.StartupPath + "/GameDesignerTools.log");
            }

            m_lua["EngineDir"] = strdir;
            m_lua["Engine"]    = m_3DEngie;

            int count;

            m_3DEngie.GetEditorSceneCount(ModelName + strTabIndex, out count);
            if (count > 0)
            {
                return;
            }

            m_3DEngie.AddScene((int)preview_panels[new_right_index - 1].Handle, ModelName + strTabIndex, iOption);

            //string DirName = strdir;
            //string PlayerName = DirName + "\\Data\\public\\PlayerCheckTool\\Male\\Normal\\M2.mdl";
            //string AniFileName = DirName + "\\data\\source\\player\\M2\\动作\\M2b04ty空手普通待机.ani";
            //m_3DEngie.LoadPlayerModel(PlayerName);
            //m_3DEngie.LoadAni(AniFileName, 1);

            this.SetTmrRenderInterval(Program.m_3d_tmrRender);
            tmrRender.Enabled = true;

            PreviewBar.Visible = true;
            PreviewBar.RecalcLayout();
            this.ResumeLayout();
        }
Example #19
0
File: doit.cs Project: viticm/pap2
        private bool Init(string strFileName, PIC_TYPE pictype, Test3DEngine engine, bool bForceRefresh)
        {            
            m_forceRefresh = bForceRefresh;

            this.time = File.GetLastWriteTime(strFileName);
            this.sprFileName = strFileName;
            string strExt = Enum.GetName(typeof(PIC_TYPE), pictype).ToLower();
            this.cachePath = string.Format(@"{0}\_cache\{1}\", Application.StartupPath, strExt);
            this.tgaFolderName = this.cachePath;
            this.tgaFileName = string.Format("{0}{1}", this.cachePath, ConverFileName(strFileName));

            if (!Directory.Exists(cachePath))
            {
                Directory.CreateDirectory(cachePath);
            }

            int nFrameCount = 0; //GetFrameCount(strFileName) 思豪的获取帧总数的函数
            strFileName = strFileName.ToLower();

            if (strFileName.EndsWith(".mdl") || strFileName.EndsWith(".mesh"))
            {
                nFrameCount = 1;
            }
            else if (strFileName.EndsWith(".ani") || strFileName.EndsWith(".tani"))
            {
                nFrameCount = 20;
            }

            for (int i = 1; i <= nFrameCount; i++)
            {
                string ii = i.ToString();

                while (ii.Length < 3)
                {
                    ii = "0" + ii;
                }
                
                TGAList[i.ToString()] = string.Format("{0}{1}.JPG", this.tgaFileName, ii);
            }

            string imageFileName = string.Format("{0}001.jpg", tgaFileName);

            switch (FileChanged())
            {
                case -1:
                    {
                        Image image = Helper.GetHelper().GetImageFromCache(GetTGAFileName(), "TGA");

                        if (image != null)
                        {
                            if (!File.Exists(imageFileName))
                            {
                                File.Create(imageFileName).Close();

                                if (saveImageTable[imageFileName] == null)
                                {
                                    try
                                    {
                                        image.Save(imageFileName, System.Drawing.Imaging.ImageFormat.Jpeg);
                                    }
                                    catch (ExternalException ex)
                                    {
                                        Helper.GetHelper().RecordLog(string.Format("保存图片文件{0}错误:{1}", imageFileName, ex.Message));
                                    }
                                    finally
                                    {
                                        saveImageTable[imageFileName] = "1";
                                    }                                                                        
                                }
                            }
                        }

                        iconImage = image;

                        break;
                    }
                case 0:
                    {
                        if (!File.Exists(imageFileName)) // 本地图片文件不存在的话需要创建出来
                        {
                            Image image = Helper.GetHelper().GetImageFromCache(GetTGAFileName(), "TGA");

                            if (image != null)
                            {
                                File.Create(imageFileName).Close();

                                if (saveImageTable[imageFileName] == null)
                                {
                                    try
                                    {
                                        image.Save(imageFileName, System.Drawing.Imaging.ImageFormat.Jpeg);
                                    }
                                    catch (ExternalException ex)
                                    {
                                        ;
                                    }
                                    finally
                                    {
                                        saveImageTable[imageFileName] = "1";
                                    }                                                                        
                                }
                            }

                            iconImage = image;
                        }

                        break;
                    }
                case 1:
                    {
                        try
                        {
                            engine.FileToImage(strFileName, this.tgaFileName);
                        }
                        catch(Exception ex)
                        {
                            Helper.GetHelper().RecordLog(string.Format("保存图片文件{0}错误:{1}", imageFileName, ex.Message));
                        }
                        finally
                        {
                            saveImageTable[imageFileName] = "1";
                        }

                        Helper.GetHelper().UpdateIcon(GetTGAFileName(), "TGA", imageFileName, GetLastWriteTime());  

                        break;
                    }
            }

            return true;
        }
Example #20
0
File: doit.cs Project: viticm/pap2
 //for other
 public SPRItem(string strFileName, PIC_TYPE pictype, Test3DEngine engine)
 {
     Init(strFileName, pictype, engine, false);
 }
Example #21
0
 public frmSelect(Test3DEngine engine, SqlConnection conn)
 {
     m_engine = engine;
     Conn = conn;
     Init();
 }
Example #22
0
 public string show4ff(string strPath, string strDefaultFile, Test3DEngine engine, SqlConnection conn)
 {
     if( null == fs )
     {
         fs = new frmSelect(engine, conn);
     }
     fs.strSelectedFileName = strDefaultFile;
     fs.Text = "请选择文件";
     fs.nQueMax = 10;
     //fs.strFilter = ";.mdl;.mtl;.ani;.mesh;";
     fs.strFilter = ";.mdl;.ani;.tani;.mesh;";
     fs.showFolder = true;
     fs.LoadFolder(strPath);
     System.Windows.Forms.DialogResult r = fs.ShowDialog();
     if (r == System.Windows.Forms.DialogResult.OK)
     {
         string srt = fs.strSelectedFileName;
         //fs.Hide();
         return (fs.strSelectedFileName);
     }
     else
     {
         //fs.Hide();
         return null;
     }
 }
Example #23
0
        private bool Init(string strFileName, PIC_TYPE pictype, Test3DEngine engine, bool bForceRefresh)
        {
            m_forceRefresh = bForceRefresh;

            this.time        = File.GetLastWriteTime(strFileName);
            this.sprFileName = strFileName;
            string strExt = Enum.GetName(typeof(PIC_TYPE), pictype).ToLower();

            this.cachePath     = string.Format(@"{0}\_cache\{1}\", Application.StartupPath, strExt);
            this.tgaFolderName = this.cachePath;
            this.tgaFileName   = string.Format("{0}{1}", this.cachePath, ConverFileName(strFileName));

            if (!Directory.Exists(cachePath))
            {
                Directory.CreateDirectory(cachePath);
            }

            int nFrameCount = 0; //GetFrameCount(strFileName) 思豪的获取帧总数的函数

            strFileName = strFileName.ToLower();

            if (strFileName.EndsWith(".mdl") || strFileName.EndsWith(".mesh"))
            {
                nFrameCount = 1;
            }
            else if (strFileName.EndsWith(".ani") || strFileName.EndsWith(".tani"))
            {
                nFrameCount = 20;
            }

            for (int i = 1; i <= nFrameCount; i++)
            {
                string ii = i.ToString();

                while (ii.Length < 3)
                {
                    ii = "0" + ii;
                }

                TGAList[i.ToString()] = string.Format("{0}{1}.JPG", this.tgaFileName, ii);
            }

            string imageFileName = string.Format("{0}001.jpg", tgaFileName);

            switch (FileChanged())
            {
            case -1:
            {
                Image image = Helper.GetHelper().GetImageFromCache(GetTGAFileName(), "TGA");

                if (image != null)
                {
                    if (!File.Exists(imageFileName))
                    {
                        File.Create(imageFileName).Close();

                        if (saveImageTable[imageFileName] == null)
                        {
                            try
                            {
                                image.Save(imageFileName, System.Drawing.Imaging.ImageFormat.Jpeg);
                            }
                            catch (ExternalException ex)
                            {
                                Helper.GetHelper().RecordLog(string.Format("保存图片文件{0}错误:{1}", imageFileName, ex.Message));
                            }
                            finally
                            {
                                saveImageTable[imageFileName] = "1";
                            }
                        }
                    }
                }

                iconImage = image;

                break;
            }

            case 0:
            {
                if (!File.Exists(imageFileName))         // 本地图片文件不存在的话需要创建出来
                {
                    Image image = Helper.GetHelper().GetImageFromCache(GetTGAFileName(), "TGA");

                    if (image != null)
                    {
                        File.Create(imageFileName).Close();

                        if (saveImageTable[imageFileName] == null)
                        {
                            try
                            {
                                image.Save(imageFileName, System.Drawing.Imaging.ImageFormat.Jpeg);
                            }
                            catch (ExternalException ex)
                            {
                                ;
                            }
                            finally
                            {
                                saveImageTable[imageFileName] = "1";
                            }
                        }
                    }

                    iconImage = image;
                }

                break;
            }

            case 1:
            {
                try
                {
                    engine.FileToImage(strFileName, this.tgaFileName);
                }
                catch (Exception ex)
                {
                    Helper.GetHelper().RecordLog(string.Format("保存图片文件{0}错误:{1}", imageFileName, ex.Message));
                }
                finally
                {
                    saveImageTable[imageFileName] = "1";
                }

                Helper.GetHelper().UpdateIcon(GetTGAFileName(), "TGA", imageFileName, GetLastWriteTime());

                break;
            }
            }

            return(true);
        }
Example #24
0
 public string RunMyFunction(string basedir, Test3DEngine engine, string representid, string socket, SqlConnection conn)
 {
     Form1 frm = new Form1(basedir, engine, representid, socket, conn);
     frm.ShowDialog();
     return frm.m_strFirstDesc;
 }
Example #25
0
File: doit.cs Project: viticm/pap2
 public SPRItem(string strFileName, PIC_TYPE pictype, Test3DEngine engine, bool bForceRefresh)
 {
     Init(strFileName, pictype, engine, bForceRefresh);
 }
Example #26
0
 private void MainForm_FormClosed(object sender, FormClosedEventArgs e)
 {
     if (K3DEngine != null)
     {
         K3DEngine.UnInit();
         K3DEngine = null;
     }
 }