Beispiel #1
0
        private void ParseAnimationTrack(STAnimGroup group, FMAT mat)
        {
            foreach (var track in group.GetTracks())
            {
                if (track is SamplerTrack)
                {
                    ParseSamplerTrack(mat, (SamplerTrack)track);
                }
                if (track is ParamTrack)
                {
                    ParseParamTrack(mat, group, (ParamTrack)track);
                }
            }

            foreach (var subGroup in group.SubAnimGroups)
            {
                ParseAnimationTrack(subGroup, mat);
            }
        }
Beispiel #2
0
        private NodeBase CreateGroupHierachy(FMAT material, STAnimGroup group)
        {
            if (group is ParamAnimGroup)
            {
                return(CreateParamNodeHierachy(material, (ParamAnimGroup)group));
            }

            var groupNode = new NodeBase(group.Name);

            groupNode.Tag = group;

            //Params have their own sub group for each parameter
            //The X, Y, Z values being individual tracks
            foreach (STAnimGroup subGroup in group.SubAnimGroups)
            {
                groupNode.AddChild(CreateGroupHierachy(material, subGroup));
            }

            var tracks = group.GetTracks();

            return(groupNode);
        }
Beispiel #3
0
        private void AddGroup(TreeNodeCollection nodes, STAnimGroup group)
        {
            TreeNode groupNode = new TreeNode(group.Name)
            {
                Tag = group, ImageKey = "AnimationGroup",
            };

            nodes.Add(groupNode);

            foreach (var subGroup in group.SubAnimGroups)
            {
                AddGroup(groupNode.Nodes, subGroup);
            }

            foreach (var track in group.GetTracks())
            {
                if (!track.HasKeys)
                {
                    continue;
                }

                string imageKey = "AnimationTrack";
                if (track.Name.EndsWith("R"))
                {
                    imageKey = "AnimationTrackR";
                }
                if (track.Name.EndsWith("G"))
                {
                    imageKey = "AnimationTrackG";
                }
                if (track.Name.EndsWith("B"))
                {
                    imageKey = "AnimationTrackB";
                }
                if (track.Name.EndsWith("A"))
                {
                    imageKey = "AnimationTrackA";
                }
                if (track.Name.EndsWith("X"))
                {
                    imageKey = "AnimationTrackX";
                }
                if (track.Name.EndsWith("Y"))
                {
                    imageKey = "AnimationTrackY";
                }
                if (track.Name.EndsWith("Z"))
                {
                    imageKey = "AnimationTrackZ";
                }
                if (track.Name.EndsWith("W"))
                {
                    imageKey = "AnimationTrackW";
                }

                TreeNode trackNode = new TreeNode(track.Name)
                {
                    Tag = track, ImageKey = imageKey, SelectedImageKey = imageKey,
                };
                groupNode.Nodes.Add(trackNode);
            }
        }