Exemple #1
0
        public override void DeleteGeometryForIdentifier(string identifier, bool requestUpdate = true)
        {
            lock (Model3DDictionaryMutex)
            {
                var geometryModels = FindAllGeometryModel3DsForNode(identifier);

                if (!geometryModels.Any())
                {
                    return;
                }

                foreach (var kvp in geometryModels)
                {
                    var model3D = Model3DDictionary[kvp.Key] as GeometryModel3D;
                    if (model3D != null)
                    {
                        model3D.Detach();
                    }
                    Model3DDictionary.Remove(kvp.Key);
                }
            }

            if (!requestUpdate)
            {
                return;
            }

            RaisePropertyChanged("SceneItems");
            OnRequestViewRefresh();
        }
Exemple #2
0
        protected override void OnClear()
        {
            lock (Model3DDictionaryMutex)
            {
                var keysList = new List <string> {
                    DefaultLightName, DefaultGridName, DefaultAxesName
                };

                foreach (var key in Model3DDictionary.Keys.Except(keysList).ToList())
                {
                    var model = Model3DDictionary[key] as GeometryModel3D;
                    model.Detach();
                    Model3DDictionary.Remove(key);
                }
            }

            RaisePropertyChanged("SceneItems");
            OnRequestViewRefresh();
        }
Exemple #3
0
        /// <summary>
        /// Initialize the Geometry everytime a workspace is opened or closed.
        /// Always, keep these DirectionalLight,Grid,Axes. These values are rendered
        /// only once by helix, attaching them again will make no effect on helix
        /// </summary>
        private void VisualizationManager_WorkspaceOpenedClosedHandled()
        {
            List <string> keysList = new List <string> {
                "DirectionalLight", "Grid", "Axes", "BillBoardText"
            };

            if (Text != null && Text.TextInfo.Any())
            {
                Text.TextInfo.Clear();
            }
            foreach (var key in Model3DDictionary.Keys.Except(keysList).ToList())
            {
                var model = Model3DDictionary[key] as GeometryModel3D;
                model.Detach();
                Model3DDictionary.Remove(key);
            }

            NotifyPropertyChanged("");
            View.InvalidateRender();
        }
Exemple #4
0
        /// <summary>
        /// when a node is deleted, then update the Geometry
        /// and notify helix
        /// </summary>
        /// <param name="node">The node.</param>
        private void VisualizationManager_DeletionHandled(NodeModel node)
        {
            var geometryModels = FindGeometryModel3DsForNode(node);

            if (!geometryModels.Any())
            {
                return;
            }

            foreach (var kvp in geometryModels)
            {
                var model = Model3DDictionary[kvp.Key] as GeometryModel3D;
                if (model != null)
                {
                    model.Detach();
                    model.MouseDown3D -= meshGeometry3D_MouseDown3D;
                }
                Model3DDictionary.Remove(kvp.Key);
            }

            NotifyPropertyChanged("");
        }