Пример #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="joint"></param>
        public int SetAnimJoint(HSD_AnimJoint joint)
        {
            Nodes.Clear();
            int max = 0;

            if (joint == null)
            {
                return(0);
            }
            foreach (var j in joint.BreathFirstSearch)
            {
                AnimNode n = new AnimNode();
                if (j.AOBJ != null)
                {
                    max = (int)Math.Max(max, j.AOBJ.EndFrame);

                    foreach (var fdesc in j.AOBJ.FObjDesc.List)
                    {
                        AnimTrack track = new AnimTrack();
                        track.TrackType = fdesc.AnimationType;
                        track.Keys      = fdesc.GetDecodedKeys();
                        n.Tracks.Add(track);
                    }
                }
                Nodes.Add(n);
            }
            return(max);
        }
Пример #2
0
        /// <summary>
        ///
        /// </summary>
        public void SetFigaTree(HSD_FigaTree tree)
        {
            Nodes.Clear();
            if (tree == null)
            {
                return;
            }

            foreach (var tracks in tree.Nodes)
            {
                AnimNode n = new AnimNode();
                foreach (HSD_Track t in tracks.Tracks)
                {
                    AnimTrack track = new AnimTrack();
                    track.TrackType = t.FOBJ.AnimationType;
                    track.Keys      = t.GetKeys();
                    n.Tracks.Add(track);
                }
                Nodes.Add(n);
            }
        }