Пример #1
0
        void item_Selected(object sender, RoutedEventArgs e)
        {
            OutlinerItemModel selected = (OutlinerItemModel)outlinerTreeView.SelectedItem;

            if (selected.ObjectType == "Mesh")
            {
                mainWindow.GetSceneObjectProperties(selected.Name);
            }
        }
Пример #2
0
 private void OnKeyDown(object sender, KeyEventArgs e)
 {
     if (e.Key == Key.Delete)
     {
         OutlinerItemModel sObjModel = outlinerTreeView.SelectedItem as OutlinerItemModel;
         mainWindow.RemovePropertiesPanel();
         IGCore.DeleteSceneObject(sObjModel.Name);
         Refresh();
     }
 }
Пример #3
0
        public void SetSceneObjects()
        {
            outlinerTreeView.Items.Clear();

            List <OutlinerItemModel> root = new List <OutlinerItemModel>();

            OutlinerItemModel scene = new OutlinerItemModel();

            scene.Name       = "Test_Scene";
            scene.Icon       = outlinerIcons["Scene"];
            scene.Children   = GetAllSceneObjectsInScene();
            scene.ObjectType = "Scene";

            root.Add(scene);

            outlinerTreeView.ItemsSource = root;
        }
Пример #4
0
 private OutlinerItemModel GetItemModelByName(string itemName)
 {
     foreach (object item in outlinerTreeView.Items)
     {
         OutlinerItemModel model = item as OutlinerItemModel;
         if (model.Name == itemName)
         {
             return(model);
         }
         OutlinerItemModel ret = GetItemModelInBranchByName(model, itemName);
         if (ret != null)
         {
             return(ret);
         }
     }
     return(null);
 }
Пример #5
0
 private OutlinerItemModel GetItemModelInBranchByName(OutlinerItemModel branch, string itemName)
 {
     foreach (OutlinerItemModel item in branch.Children)
     {
         if (item.Name == itemName)
         {
             return(item);
         }
         foreach (OutlinerItemModel child in item.Children)
         {
             OutlinerItemModel ret = GetItemModelInBranchByName(child, itemName);
             if (ret != null)
             {
                 return(ret);
             }
         }
     }
     return(null);
 }
Пример #6
0
        List <OutlinerItemModel> GetAllSceneObjectsInScene()
        {
            List <OutlinerItemModel> sObjects = new List <OutlinerItemModel>();

            int numObj = IGCore.GetSceneObjectNum();

            for (int i = 0; i < numObj; i++)
            {
                IntPtr pName   = IGCore.GetSceneObjectName(i);
                string objName = Marshal.PtrToStringUni(pName);
                //string objName = Marshal.PtrToStringAnsi(pName);
                OutlinerItemModel obj = new OutlinerItemModel();
                obj.Icon       = outlinerIcons["Mesh"];
                obj.Name       = objName;
                obj.Children   = new List <OutlinerItemModel>();
                obj.ObjectType = "Mesh";
                sObjects.Add(obj);
            }

            return(sObjects);
        }
Пример #7
0
        public void GetSceneObjects()
        {
            //outlinerTreeView.Items.Clear();
            outlinerTreeView.ItemsSource = null;

            List <OutlinerItemModel> root = new List <OutlinerItemModel>();

            OutlinerItemModel scene = new OutlinerItemModel();

            scene.Name       = "Scene";
            scene.Icon       = outlinerIcons["Scene"];
            scene.Children   = GetAllSceneObjectsInScene();
            scene.ObjectType = "Scene";

            root.Add(scene);

            outlinerTreeView.ItemsSource = root;
            TreeViewItem rootItem = (TreeViewItem)outlinerTreeView.ItemContainerGenerator.ContainerFromItem(scene);

            rootItem.IsExpanded = true;
        }
Пример #8
0
        private void CreateSceneObject(string meshUniqueName)
        {
            string sObjName = string.Empty;

            for (int i = 0; ; i++)
            {
                string tryName = "NewSceneObject";
                if (i > 0)
                {
                    tryName = tryName + "_" + Convert.ToString(i);
                }
                if (!IGCore.SceneObjectExists(tryName))
                {
                    sObjName = tryName;
                    break;
                }
            }

            IGCore.CreateSceneObject(sObjName, meshUniqueName);

            GetSceneObjects();
            OutlinerItemModel newModel = null;

            foreach (object item in outlinerTreeView.Items)
            {
                OutlinerItemModel model = item as OutlinerItemModel;
                if (model.Name == sObjName)
                {
                    newModel = model;
                    break;
                }
            }
            if (newModel != null)
            {
                //TreeViewItem tvi = (TreeViewItem)outlinerTreeView.ItemContainerGenerator.ContainerFromItem(newModel);
                //tvi.Focus();
            }
            //mainWindow.GetSceneObjectProperties(sObjName);
        }