static void Main(string[] args) { GraphNode rootGraph = new GraphNode(null, "Root"); GraphNode child1 = new GraphNode(null, "Child1"); GraphNode child2 = new GraphNode(null, "Child2"); rootGraph.AddChildNode(child1); rootGraph.AddChildNode(child2); // physics update frame 1 ---------------------------- Console.WriteLine("*** Frame 1 ***"); child2.SetTransform(new Transform(child2.Local.Name)); // simulates some kind of physical force Console.WriteLine("----- Simple traversal -----"); rootGraph.SimpleRender(Transform.Origin); Console.WriteLine(); Console.WriteLine("----- Dirty-flag traversal -----"); rootGraph.DirtyFlagRender(Transform.Origin, rootGraph.Dirty); Console.WriteLine(); Console.WriteLine(); // physics update frame 2 ---------------------------- Console.WriteLine("*** Frame 2 ***"); child1.SetTransform(new Transform(child1.Local.Name)); // simulates some kind of physical force Console.WriteLine(); Console.WriteLine("----- Simple traversal -----"); rootGraph.SimpleRender(Transform.Origin); Console.WriteLine(); Console.WriteLine("----- Dirty-flag traversal -----"); rootGraph.DirtyFlagRender(Transform.Origin, rootGraph.Dirty); Console.WriteLine(); Console.WriteLine(); // physics update frame 3 ---------------------------- Console.WriteLine("*** Frame 3 ***"); rootGraph.SetTransform(new Transform(rootGraph.Local.Name)); // simulates some kind of physical force Console.WriteLine(); Console.WriteLine("----- Simple traversal -----"); rootGraph.SimpleRender(Transform.Origin); Console.WriteLine(); Console.WriteLine("----- Dirty-flag traversal -----"); rootGraph.DirtyFlagRender(Transform.Origin, rootGraph.Dirty); Console.ReadLine(); }
private GraphNode ParseGraphNode(GraphNode parent, string name, string parentLabel, JObject json, JsonSerializer serializer) { GraphNode current = new GraphNode(); // Parse the object var objectJson = ExtractObjectJson(json); current.Object = serializer.Deserialize <APObject>(objectJson.CreateReader()); // Parse edge if (parent != null) { var edgeJson = ExtractEdgeJson(json); if (edgeJson != null) { current.Connection = ParseConnection(parentLabel, parent.Object, current.Object, edgeJson); } } // Parse children ParseChildNodes(json, current, serializer); // Set parent context if (parent != null) { parent.AddChildNode(name, current); current.Parent = parent; } return(current); }
private GraphNode ParseGraphNode(GraphNode parent, string name, string parentLabel, JObject json, JsonSerializer serializer) { GraphNode current = new GraphNode(); // Parse the article var articleJson = ExtractArticleJson(json); current.Article = serializer.Deserialize<Article>(articleJson.CreateReader()); // Parse edge if (parent != null) { var edgeJson = ExtractEdgeJson(json); if (edgeJson != null) current.Connection = ParseConnection(parentLabel, parent.Article, current.Article, edgeJson); } // Parse children ParseChildNodes(json, current, serializer); // Set parent context if (parent != null) { parent.AddChildNode(name, current); current.Parent = parent; } return current; }