Ejemplo n.º 1
0
        private void ConsolidateArmatureHierarchyModels(ArmatureHierarchyModel currentContextArmatureHierarchy)
        {
            var currentChannels       = armatureHierarchy.GetTreeBuildingNodes();
            var newChannels           = currentContextArmatureHierarchy.GetTreeBuildingNodes();
            var actualNewChannels     = newChannels.Difference(currentChannels);
            var armatureHierarchyTree = (Tree <ArmatureHierarchyModelNode, string>)armatureHierarchy;

            armatureHierarchyTree = Tree <ArmatureHierarchyModelNode, string> .BuildTreeWithProperNodesPuttingOrder(
                armatureHierarchyTree, actualNewChannels.ToBuildingTreeNodesQueue());

            armatureHierarchy = (ArmatureHierarchyModel)armatureHierarchyTree;
        }
        private ArmatureHierarchyModel BuildArmatureHierarchyModel(Transform persoBehaviourComponentOwner)
        {
            var armatureHierarchyModelBuildingNodes = new Queue <TreeBuildingNodeInfo <ArmatureHierarchyModelNode, string> >();

            foreach (var parentChildChannelPair in PersoChannelsHierarchyHelper.IterateParentChildChannelPairs(persoBehaviourComponentOwner))
            {
                armatureHierarchyModelBuildingNodes.Enqueue(
                    new TreeBuildingNodeInfo <ArmatureHierarchyModelNode, string>(
                        parentChildChannelPair.Item1,
                        parentChildChannelPair.Item2,
                        new ArmatureHierarchyModelNode(parentChildChannelPair.Item2)
                        )
                    );
            }
            var result     = new ArmatureHierarchyModel();
            var resultTree = (Tree <ArmatureHierarchyModelNode, string>)result;

            resultTree = Tree <ArmatureHierarchyModelNode, string> .BuildTreeWithProperNodesPuttingOrder(resultTree, armatureHierarchyModelBuildingNodes);

            result = (ArmatureHierarchyModel)resultTree;
            return(result);
        }