public bool AddChildNode(SceneNode node) { if (!itemHashSet.ContainsKey(node.GUID)) { itemHashSet.Add(node.GUID, node); Items.Add(node); if (IsAttached) { node.Attach(RenderHost); } forceUpdateTransform = true; OnAddChildNode?.Invoke(this, new OnChildNodeChangedArgs(node, Operation.Add)); return(true); } else { return(false); } }
public bool AddChildNode(SceneNode node) { if (!itemHashSet.ContainsKey(node.GUID)) { itemHashSet.Add(node.GUID, node); Items.Add(node); if (node.Parent != NullSceneNode.NullNode && node.Parent != this) { throw new ArgumentException("SceneNode already attach to a different node"); } node.Parent = this; if (IsAttached) { node.Attach(RenderHost); } OnAddChildNode?.Invoke(this, new OnChildNodeChangedArgs(node, Operation.Add)); return(true); } else { return(false); } }