/// <summary> /// Adds a layer to the scene. /// </summary> /// <param name="layerRoot">The root visual of the layer.</param> /// <returns>The created layer.</returns> public SceneLayer Add(IVisual layerRoot) { Contract.Requires <ArgumentNullException>(layerRoot != null); var distance = layerRoot.CalculateDistanceFromAncestor(_root); var layer = new SceneLayer(layerRoot, distance); var insert = FindInsertIndex(layer); _index.Add(layerRoot, layer); _inner.Insert(insert, layer); return(layer); }
/// <summary> /// Adds a layer to the scene. /// </summary> /// <param name="layerRoot">The root visual of the layer.</param> /// <returns>The created layer.</returns> public SceneLayer Add(IVisual layerRoot) { _ = layerRoot ?? throw new ArgumentNullException(nameof(layerRoot)); var distance = layerRoot.CalculateDistanceFromAncestor(_root); var layer = new SceneLayer(layerRoot, distance); var insert = FindInsertIndex(layer); _index.Add(layerRoot, layer); _inner.Insert(insert, layer); return(layer); }