public void Tessellate(IRenderPackage package, TessellationParameters parameters) { if (this.GetType() == typeof(VisibilityGraph)) { VisibilityGraph visGraph = this as VisibilityGraph; if (visGraph.Factors != null && visGraph.colorRange != null) { visGraph.TessellateVisibilityGraph(package, parameters); } else { TesselateBaseGraph(package, parameters); } } else { TesselateBaseGraph(package, parameters); } }
public static Dictionary <string, object> Connectivity( VisibilityGraph visGraph, [DefaultArgument("null")] List <DSCore.Color> colours, [DefaultArgument("null")] List <double> indices) { if (visGraph == null) { throw new ArgumentNullException("visGraph"); } Graphical.Graphs.VisibilityGraph visibilityGraph = visGraph.graph as Graphical.Graphs.VisibilityGraph; VisibilityGraph graph = new VisibilityGraph() { graph = visibilityGraph, Factors = visibilityGraph.ConnectivityFactor() }; if (colours != null && indices != null && colours.Count == indices.Count) { graph.colorRange = new Dictionary <double, DSCore.Color>(); // Create KeyValuePairs and sort them by index in case unordered. var pairs = indices.Zip(colours, (i, c) => new KeyValuePair <double, DSCore.Color>(i, c)).OrderBy(kv => kv.Key); // Adding values to colorRange dictionary foreach (KeyValuePair <double, DSCore.Color> kv in pairs) { graph.colorRange.Add(kv.Key, kv.Value); } } return(new Dictionary <string, object>() { { "visGraph", graph }, { "factors", graph.Factors } }); }