Exemplo n.º 1
0
        private ISceneAsset TransformScene(Scene scene, string id, ReaderContext context)
        {
            var sceneAsset = new SceneAsset(id);

            foreach (var node in scene.VisualChildren)
            {
                var nodeAsset = (NodeAsset)context.Nodes[node.LogicalIndex];
                sceneAsset.Add(nodeAsset);
                AttachChildren(node, nodeAsset, context);
            }

            return(sceneAsset);
        }
Exemplo n.º 2
0
        public virtual IEnumerable <ISceneAsset> Apply(ISceneAsset scene)
        {
            var transformedScene = new SceneAsset(scene.Id);

            foreach (var node in scene.ChildNodes)
            {
                NodeAsset parent = null;
                foreach (var transformedNode in Apply(null, node))
                {
                    transformedScene.Add(transformedNode);
                    parent = transformedNode;
                }

                if (parent != null)
                {
                    foreach (var childNode in node.ChildNodes)
                    {
                        ApplyOnSubtree(parent, childNode);
                    }
                }
            }

            yield return(transformedScene);
        }