示例#1
0
 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);
     }
 }
示例#2
0
        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 }
            });
        }