예제 #1
0
        void MergeFrame(xxFrame newFrame, int destParentId)
        {
            xxFrame srcParent = new xxFrame();

            srcParent.InitChildren(1);
            srcParent.AddChild(newFrame);

            xxFrame destParent;

            if (destParentId < 0)
            {
                destParent = new xxFrame();
                destParent.InitChildren(1);
                destParent.AddChild(Parser.Frame);
            }
            else
            {
                destParent = Frames[destParentId];
            }

            MergeFrame(srcParent, destParent);

            if (destParentId < 0)
            {
                Parser.Frame = srcParent[0];
                srcParent.RemoveChild(0);
            }

            Frames.Clear();
            Meshes.Clear();
            InitFrames(Parser.Frame);
        }
예제 #2
0
        void MergeFrame(xxFrame srcParent, xxFrame destParent)
        {
            for (int i = 0; i < destParent.Count; i++)
            {
                var dest = destParent[i];
                for (int j = 0; j < srcParent.Count; j++)
                {
                    var src = srcParent[j];
                    if (src.Name == dest.Name)
                    {
                        MergeFrame(src, dest);

                        srcParent.RemoveChild(j);
                        destParent.RemoveChild(i);
                        destParent.InsertChild(i, src);
                        break;
                    }
                }
            }

            if (srcParent.Name == destParent.Name)
            {
                while (destParent.Count > 0)
                {
                    var dest = destParent[0];
                    destParent.RemoveChild(0);
                    srcParent.AddChild(dest);
                }
            }
            else
            {
                while (srcParent.Count > 0)
                {
                    var src = srcParent[0];
                    srcParent.RemoveChild(0);
                    destParent.AddChild(src);
                }
            }
        }