コード例 #1
0
        private bool ResetResource(string confirmTxt)
        {
            if (m_resStaticMesh != null &&
                confirmTxt.Length > 0)
            {
                if (DialogResult.OK !=
                    MessageBox.Show(this, confirmTxt, "Please Confirm", MessageBoxButtons.OKCancel))
                {
                    return(false);
                }
            }

            //--
            m_preview.Reset();

            if (m_resStaticMesh != null)
            {
                m_resStaticMesh.Dispose();
                m_resStaticMesh = null;
            }
            m_prop = null;
            this.propertyGridMtl.SelectedObject = null;
            this.propertyGridRes.SelectedObject = null;
            this.comboBoxLOD.Items.Clear();
            this.comboBoxSection.Items.Clear();

            return(true);
        }
コード例 #2
0
 //加载静态模型并将当前材质赋给模型
 public void LoadStaticMesh(string pkg, string file)
 {
     try
     {
         using (NexusEngineExtension.NWaitCursor wc = new NexusEngineExtension.NWaitCursor(this))
         {
             NResourceLoc resLoc = new NResourceLoc(pkg, file);
             m_resStaticMesh = NResourceManager.Instance.LoadStaticMesh(
                 resLoc,
                 EResourceIOMode.Block,
                 EResourceIOPriority.Normal
                 );
             for (int i = 0; i < m_resStaticMesh.GetNumLOD(); ++i)
             {
                 for (int j = 0; j < m_resStaticMesh.GetNumSection(i); ++j)
                 {
                     m_resStaticMesh.ImportSetMaterial(i, j, m_Material);
                 }
             }
             m_preview.ShowStaticMesh(m_resStaticMesh);
             m_Sphere = null;
         }
     }
     catch (System.Exception ex)
     {
         NexusEditor.Program.ShowException(ex, "Load Static Mesh FAILED");
     }
 }
コード例 #3
0
        public void LoadStaticMesh(string pkg, string file)
        {
            try
            {
                using (NexusEngineExtension.NWaitCursor wc = new NexusEngineExtension.NWaitCursor(this))
                {
                    NResourceLoc resLoc = new NResourceLoc(pkg, file);
                    m_resStaticMesh = NResourceManager.Instance.LoadStaticMesh(
                        resLoc,
                        EResourceIOMode.Block,
                        EResourceIOPriority.Normal
                        );
                    m_prop = new ResStaticMeshProperty(m_resStaticMesh);

                    this.propertyGridRes.SelectedObject = m_prop;
                    m_preview.ShowStaticMesh(m_resStaticMesh);

                    RefreshLOD();
                }
            }
            catch (System.Exception ex)
            {
                NexusEditor.Program.ShowException(ex, "Load Static Mesh FAILED");
            }
        }
コード例 #4
0
 public void     LoadSphere()
 {
     m_Sphere = m_preview.ShowSphereShapeComponent(500, 18, 18);
     if (m_Material != null)
     {
         m_Sphere.SetMaterial(m_Material);
     }
     m_resStaticMesh = null;
 }
コード例 #5
0
 public new void Close()
 {
     if (m_resStaticMesh != null)
     {
         m_resStaticMesh.Dispose();
         m_resStaticMesh = null;
     }
     m_preview.Dispose();
     m_finalClose = true;
     base.Close();
 }
コード例 #6
0
 public StaticMeshMaterialProperty(NResourceStaticMesh res, int lod, int sec)
 {
     m_Res = res; m_Lod = lod; m_Section = sec;
     if (m_Res != null)
     {
         NMtlBase mtl = m_Res.GetMaterial(m_Lod, m_Section);
         if (mtl != null)
         {
             m_Loc = new NResourceLoc(mtl.Name);
         }
     }
 }
コード例 #7
0
        public void LoadStaticMesh(NResourceLoc loc)
        {
            m_level.DestroyAllActors();

            try
            {
                NResourceStaticMesh res =
                    NResourceManager.Instance.LoadStaticMesh(loc,
                                                             EResourceIOMode.Block, EResourceIOPriority.Normal);
                this.ShowStaticMesh(res);
            }
            catch (System.Exception e)
            {
                NexusEditor.Program.ShowException(e, "Static Mesh Preview Load FAILED!");
            }
        }
コード例 #8
0
        private void CreateResource()
        {
            ResetResource("");

            // 产生一个不重复的名称
            string resName = "NewStaticMesh";

            resName += DateTime.Now.ToFileTime();

            // 创建空白资源和内部数据
            m_resStaticMesh = NResourceManager.Instance.NewStaticMesh(resName);
            m_prop          = new ResStaticMeshProperty(m_resStaticMesh);

            // 更新界面
            RefreshLOD();
            m_preview.ShowStaticMesh(m_resStaticMesh);
        }
コード例 #9
0
        public override void PostCreateActor(NexusEngine.NActor actor)
        {
            base.PostCreateActor(actor);

            //创建显示用部件
            NResourceLoc        res  = new NResourceLoc("engine_data", "/resource_default/skydome.nmdl");
            NResourceStaticMesh mesh = NResourceManager.Instance.LoadStaticMesh(res, EResourceIOMode.Auto, EResourceIOPriority.Normal);

            if (mesh == null)
            {
                return;
            }
            actor.Frozen = true;
            NActorComponent comp     = actor.CreateComponent("SkyComponent", "nsky_component");
            NSkyComponent   meshComp = comp as NSkyComponent;

            meshComp.ResetResource(res);
        }
コード例 #10
0
        public void ShowStaticMesh(NResourceStaticMesh mesh)
        {
            try
            {
                m_level.DestroyAllActors();

                //-- create a actor for mesh
                NActor               meshActor = m_level.CreateActor("StaticMeshActor", "nactor");
                NActorComponent      comp      = meshActor.CreateComponent("MeshComp", "nstatic_mesh_component");
                NStaticMeshComponent meshComp  = comp as NStaticMeshComponent;
                meshComp.ResetResource(mesh);
                m_actorBox = meshComp.GetBoundingBox();

                //-- add default light
                AddDefaultLight();
            }
            catch (System.Exception e)
            {
                NexusEditor.Program.ShowException(e, "Static Mesh Preview Open FAILED!");
            }
        }
コード例 #11
0
 public ResStaticMeshProperty(NResourceStaticMesh res)
     : base(res)
 {
 }