public MorphFacialAnimationChannel Copy() { MorphFacialAnimationChannel copy = new MorphFacialAnimationChannel(); copy.ChannelName = this.ChannelName; copy.CanMirror = this.CanMirror; copy.CanLoop = this.CanLoop; List <float> keysCopy = new List <float>(this.Keys.Count); for (int i = 0; i < this.Keys.Count; i++) { keysCopy.Add(this.Keys[i]); } copy.Keys = keysCopy; return(copy); }
//Fill clip with animation channels from animation data from the database. FacialAnimationClip FillAnimationClip(FacialAnimationData data) { //Create animation clip to fill. FacialAnimationClip clip = new FacialAnimationClip(data.ID, this.baseChannels, FRAMERATE); for (int i = 0; i < data.RotationChannels.Count; i++) { RotationFacialAnimationChannel channelData = data.RotationChannels[i]; RotationChannel rotationChannel = new RotationChannel(channelData.ChannelName, channelData.Keys, channelData.CanLoop, channelData.CanMirror, false, false, FRAMERATE); clip.AddAnimationChannel(rotationChannel); } for (int i = 0; i < data.MorphChannels.Count; i++) { MorphFacialAnimationChannel channelData = data.MorphChannels[i]; MorphChannel morphChannel = new MorphChannel(channelData.ChannelName, channelData.Keys, channelData.CanLoop, channelData.CanMirror, false, false, FRAMERATE); clip.AddAnimationChannel(morphChannel); } return(clip); }