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();
        }
Exemple #2
0
        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;
 }