internal void VisualizeGeometry(NodeModel node, object geom, string tag, RenderDescription rd) { var t = geom.GetType(); var viz = Visualizers.FirstOrDefault(x => x.Key == t || x.Key.IsAssignableFrom(t)); //draw what's in the container if (viz.Value != null) { viz.Value.Invoke(node, geom, tag, rd, octree); } }
internal Extension <IVisualizer> FindVisualizer(Type type) { return(Visualizers.SingleOrDefault(e => e.IsDefault && e.Value.TargetType == type) ?? Visualizers.FirstOrDefault(e => e.Value.TargetType == type)); }
public ProjectItemView(ProjectView projectView, ProjectItem projectItem) { this.ProjectItem = projectItem; this.ProjectView = projectView; this.ShowCommand = new DelegateCommand(Show); this.Visualizers = new ObservableCollection <VisualizerView>( Editor.Extensions.Visualizers.Where(v => v.Value.TargetType.IsAssignableFrom(projectItem.ObjectModel.GetType())) .Select(v => new VisualizerView(this, v.Value))); this.DefaultVisualizer = Visualizers.SingleOrDefault(v => v.IsDefault) ?? Visualizers.FirstOrDefault(); this.ActiveVisualizer = DefaultVisualizer; }