public SceneGraph(GraphicsDevice graphicsDevice) { GraphicsDevice = graphicsDevice; //init RootNode RootNode = new SceneNode { Position = new Vector2(0, 0), Rotation = 0.0f, Scale = new Vector2(0, 0) }; }
/// <summary> /// Draws the specified recursive. /// </summary> /// <param name="node">The node.</param> /// <author>Roy "Kato" Carlitscheck (RC) </author> /// <copyright>ek-Dev</copyright> /// <creationDate>05.02.2012 15:21</creationDate> private void Draw(SceneNode node) { if (node.IsVisible && node.HasEntities) { foreach (var entity in node.Entities) { entity.Draw(this); } } if (node.IsVisible && node.HasChildNodes) { foreach (var child in node.ChildNodes) { Draw(child); } } }
/// <summary> /// Updates the specified node recursive /// </summary> /// <param name="node">The node.</param> /// <author>Roy "Kato" Carlitscheck (RC) </author> /// <copyright>ek-Dev</copyright> /// <creationDate>05.02.2012 15:20</creationDate> private void Update(SceneNode node) { if (node.HasChildNodes) foreach (var child in node.ChildNodes) { Update(child); } foreach (var entity in node.Entities) { entity.Update(this); } }
/// <summary> /// Adds a node to the child node collection and sets the parent /// </summary> /// <param name="childNode">The child node.</param> /// <author>Roy "Kato" Carlitscheck (RC) </author> /// <copyright>ek-Dev</copyright> /// <creationDate>06.02.2012 17:34</creationDate> public void AddChildNode(SceneNode childNode) { childNode.Parent = this; ChildNodes.Add(childNode); }