public void RemoveToolpaths(ToolpathSO sourceSO) { List <AnalysisViz> found; lock (SOToAnalysis) { if (SOToAnalysis.TryGetValue(sourceSO, out found)) { foreach (var analysis in found) { analysis.OnComputeUpdateRequired -= OnVisualizationRequestedUpdate; analysis.OnGeometryUpdateRequired -= OnVisualizationHasGeometryUpdate; analysis.Disconnect(); } SOToAnalysis.Remove(sourceSO); } } lock (DirtyList) { if (found != null) { foreach (var analysis in found) { DirtyList.Remove(analysis); } } } }
public void RemoveMesh(DMeshSO sourceSO) { List <AnalysisViz> found; lock (SOToAnalysis) { if (SOToAnalysis.TryGetValue(sourceSO, out found)) { foreach (var analysis in found) { disconnect_analysis(analysis); } SOToAnalysis.Remove(sourceSO); } } lock (DirtyList) { if (found != null) { foreach (var analysis in found) { DirtyList.Remove(analysis); } } } }