public static void ShowVisualizer(this RulesEngine engine) { var visitor = new GraphRulesEngineVisitor(); engine.Accept(visitor); RulesEngineGraph graph = visitor.Graph; RulesEngineDebugVisualizer.Show(graph); }
public void SaveGraphToFile(RulesEngineGraph data, int width, int height, string filename) { Graph gleeGraph = CreateGraph(data); var renderer = new GraphRenderer(gleeGraph); renderer.CalculateLayout(); var bitmap = new Bitmap(width, height, PixelFormat.Format32bppArgb); renderer.Render(bitmap); bitmap.Save(filename, ImageFormat.Png); }
public Graph CreateGraph(RulesEngineGraph data) { var graph = new AdjacencyGraph <Vertex, Edge <Vertex> >(); graph.AddVertexRange(data.Vertices); graph.AddEdgeRange(data.Edges.Select(x => new Edge <Vertex>(x.From, x.To))); GleeGraphPopulator <Vertex, Edge <Vertex> > glee = graph.CreateGleePopulator(); glee.NodeAdded += NodeStyler; glee.EdgeAdded += EdgeStyler; glee.Compute(); Graph gleeGraph = glee.GleeGraph; return(gleeGraph); }
public override void GetData(object target, Stream outgoingData) { if (target == null) { return; } var engine = target as RulesEngine; if (engine == null) { return; } RulesEngineGraph rulesEngineGraph = CreateRulesEngineGraph(engine); base.GetData(rulesEngineGraph, outgoingData); }
public Graph CreateGraph(RulesEngineGraph data) { var graph = new AdjacencyGraph<Vertex, Edge<Vertex>>(); graph.AddVertexRange(data.Vertices); graph.AddEdgeRange(data.Edges.Select(x => new Edge<Vertex>(x.From, x.To))); GleeGraphPopulator<Vertex, Edge<Vertex>> glee = graph.CreateGleePopulator(); glee.NodeAdded += NodeStyler; glee.EdgeAdded += EdgeStyler; glee.Compute(); Graph gleeGraph = glee.GleeGraph; return gleeGraph; }
public static void Show(RulesEngineGraph data) { var visualizerHost = new VisualizerDevelopmentHost(data, typeof(RulesEngineDebugVisualizer)); visualizerHost.ShowVisualizer(); }