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(); }
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(); }
/// <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(); }
/// <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(""); }