public void InitFrames(int FramesCount) { Frame = new BoneAnimation[FramesCount]; for (int i = 0; i < FramesCount; i++) { Frame[i] = new BoneAnimation(); } }
public void AddAnimationAt(int frame_number, string animation_name, BoneFrame frame, ZMOTrack.TrackType trackType) { bool createdAnim = false; bool createdFare = false; BoneAnimation banim = BoneAnimations.Find(ba => ba.Name.Equals(animation_name, System.StringComparison.InvariantCultureIgnoreCase)); // if new animation - create if (banim == null) { banim = new BoneAnimation(animation_name); createdAnim = true; } BoneFrame bframe = banim.Frames.Find(a => a.Frame == frame_number); // if new frame - create if (bframe == null) { bframe = new BoneFrame() { Frame = frame_number }; createdFare = true; } // add/update frame transform switch (trackType) { case ZMOTrack.TrackType.POSITION: bframe.Position = frame.Position; break; case ZMOTrack.TrackType.ROTATION: bframe.Rotation = frame.Rotation.Normalized(); break; case ZMOTrack.TrackType.SCALE: bframe.Scale = frame.Scale; break; } if (createdFare) { banim.Frames.Add(bframe); } if (createdAnim) { BoneAnimations.Add(banim); } }