Exemple #1
0
 //============================================================
 // <T>加载配置信息。</T>
 //
 // @param xconfig 配置信息
 //============================================================
 public void LoadOrignConfig(FXmlNode xconfig)
 {
     // 获得属性
     _source   = xconfig.Get("src");
     _template = RContent3dManager.TemplateConsole.Find(_source);
     if (null == _template)
     {
         RMoCore.TrackConsole.Write(this, "LoadOrignConfig", "Template is not exists. (scene={0}, template={1})", _scene.Name, _source);
     }
     // 获得节点集合
     foreach (FXmlNode xnode in xconfig.Nodes)
     {
         // 加载矩阵
         if (xnode.IsName("Matrix"))
         {
             _modelMatrix.LoadSingleConfig(xnode);
         }
         // 加载动画集合
         if (xnode.IsName("Movies"))
         {
             foreach (FXmlNode xmovie in xnode.Nodes)
             {
                 if (xmovie.IsName("Movie"))
                 {
                     FDrSceneMovie movie = new FDrSceneMovie();
                     movie.LoadOrignConfig(xmovie);
                     _movies.Push(movie);
                 }
             }
         }
         // 加载材质集合
         if (xnode.IsName("Materials"))
         {
             foreach (FXmlNode xmaterial in xnode.Nodes)
             {
                 if (xmaterial.IsName("Material"))
                 {
                     FDrSceneMaterial material = new FDrSceneMaterial();
                     material.Scene = _scene;
                     material.LoadOrignConfig(xmaterial);
                     _materials.Push(material);
                 }
             }
         }
         // 加载渲染集合
         if (xnode.IsName("Renderables"))
         {
             foreach (FXmlNode xrenderable in xnode.Nodes)
             {
                 if (xrenderable.IsName("Renderables"))
                 {
                     FDrSceneRenderable renderable = new FDrSceneRenderable();
                     renderable.LoadOrignConfig(xrenderable);
                     _renderables.Push(renderable);
                 }
             }
         }
     }
 }
 //============================================================
 // <T>存储资源模板。</T>
 //
 // @param template 资源模板
 //============================================================
 public void SaveTemplate(FDrTemplate template)
 {
     _template.OptionLoaded        = qdrOptionLoad.DataValue;
     _template.OptionSelect        = qdrOptionSelect.DataValue;
     _template.OptionGround        = qdrOptionGround.DataValue;
     _template.OptionMergeVertex   = qdrOptionMergeVertex.DataValue;
     _template.OptionMergeMaterial = qdrOptionMergeMaterial.DataValue;
     _template.OptionLightMap      = qdrOptionLightMap.DataValue;
 }
Exemple #3
0
 //============================================================
 // <T>打开资源。</T>
 //============================================================
 public void SelectItem(object item)
 {
     if (item is FDrTemplate)
     {
         FDrTemplate template = item as FDrTemplate;
         qdrTemplateProperty.Dock    = DockStyle.Fill;
         qdrTemplateProperty.Visible = true;
         qdrTemplateProperty.LoadTemplate(template);
     }
     else
     {
         qdrTemplateProperty.Visible = false;
     }
 }
Exemple #4
0
        //============================================================
        // <T>选中导出。</T>
        //============================================================
        public void ExportSelected()
        {
            FObjects <TreeNode> nodes = tvwCatalog.FetchCheckedNodes();

            foreach (TreeNode node in nodes)
            {
                FCfgFolder folder = node.Tag as FCfgFolder;
                if (null != folder)
                {
                    FDrTemplate template = folder.Tag as FDrTemplate;
                    if (null != template)
                    {
                        RContent3dManager.TemplateConsole.TaskExport(template);
                    }
                }
            }
        }
Exemple #5
0
        //============================================================
        // <T>按照选中保存。</T>
        //============================================================
        public void SaveSelect()
        {
            FObjects <TreeNode> nodes = tvwCatalog.FetchCheckedNodes();

            foreach (TreeNode node in nodes)
            {
                FCfgFolder folder = node.Tag as FCfgFolder;
                if (folder != null)
                {
                    FDrTemplate template = folder.Tag as FDrTemplate;
                    if (null != template)
                    {
                        template.Store();
                    }
                }
            }
        }
 //============================================================
 // <T>添加数值<T>
 //
 // @prama temp 模板对象
 //============================================================
 private void SetTemplateValue(FDrTemplate temp)
 {
     qgvGeometries.Rows.Clear();
     foreach (FDrTemplateRenderable render in temp.Renderables)
     {
         DataGridViewRow row = new DataGridViewRow();
         // 增加模块名称
         DataGridViewTextBoxCell modelCell = new DataGridViewTextBoxCell();
         modelCell.Value = render.ModelName;
         row.Cells.Add(modelCell);
         // 增加网格名称
         DataGridViewTextBoxCell geometryCell = new DataGridViewTextBoxCell();
         geometryCell.Value = render.GeometryName;
         row.Cells.Add(geometryCell);
         // 增加材质名称
         DataGridViewTextBoxCell materialCell = new DataGridViewTextBoxCell();
         materialCell.Value = render.MaterialName;
         row.Cells.Add(materialCell);
         qgvGeometries.Rows.Add(row);
     }
 }
        //============================================================
        // <T>加载资源模板。</T>
        //
        // @param template 资源模板
        //============================================================
        public void LoadTemplate(FDrTemplate template)
        {
            template.Open();
            _template = template;
            // 设置属性
            qdrOptionLoad.DataValue          = template.OptionLoaded;
            qdrOptionSelect.DataValue        = template.OptionSelect;
            qdrOptionGround.DataValue        = template.OptionGround;
            qdrOptionMergeVertex.DataValue   = template.OptionMergeVertex;
            qdrOptionMergeMaterial.DataValue = template.OptionMergeMaterial;
            qdrOptionLightMap.DataValue      = template.OptionLightMap;
            // 清空节点
            tvwCatalog.Nodes.Clear();
            //............................................................
            // 取得对象集合
            TreeNode materialsNode = new TreeNode("材质列表");

            materialsNode.ImageKey         = "folder";
            materialsNode.SelectedImageKey = "folder";
            materialsNode.Tag = template;
            foreach (FDrMaterialGroup material in _template.Materials)
            {
                TreeNode materialNode = new TreeNode(material.Name);
                materialNode.ImageKey         = "material";
                materialNode.SelectedImageKey = "material";
                materialNode.Tag = material;
                materialsNode.Nodes.Add(materialNode);
            }
            tvwCatalog.Nodes.Add(materialsNode);
            //............................................................
            // 取得对象集合
            TreeNode renderablesNode = new TreeNode("渲染列表");

            renderablesNode.ImageKey         = "folder";
            renderablesNode.SelectedImageKey = "folder";
            renderablesNode.Tag = template;
            foreach (FDrTemplateRenderable renderable in _template.Renderables)
            {
                TreeNode renderableNode = new TreeNode(renderable.DisplayLabel);
                renderableNode.ImageKey         = "renderable";
                renderableNode.SelectedImageKey = "renderable";
                renderableNode.Tag = renderable;
                renderablesNode.Nodes.Add(renderableNode);
            }
            tvwCatalog.Nodes.Add(renderablesNode);
            //............................................................
            TreeNode animationNode = new TreeNode("动画列表");

            animationNode.ImageKey         = "folder";
            animationNode.SelectedImageKey = "folder";
            animationNode.Tag = template.Animation;
            foreach (FDrTemplateAnimationMovie movie in template.Animation.Movies)
            {
                string   label     = movie.Name + " (" + movie.FrameBegin + " - " + movie.FrameEnd + ") x " + movie.FrameRate;
                TreeNode movieNode = new TreeNode(label);
                movieNode.ImageKey         = "movie";
                movieNode.SelectedImageKey = "movie";
                movieNode.Tag = movie;
                animationNode.Nodes.Add(movieNode);
            }
            // 指定图片
            tvwCatalog.Nodes.Add(animationNode);
            //............................................................
            // 全部展开
            tvwCatalog.ExpandAll();
            // 获得选中节点的资源
            tvwCatalog.SelectedNode = materialsNode;
        }