public bool Do() { Layer TargetLayer = Program.ActiveProject.Layers[LayerIndex]; Frameset TargetFrameset = TargetLayer.Framesets[FramesetIndex]; AddedFrame = new Keyframe(Time, State.Copy(), EntityInterpolationMode.Linear); PrevSelectedFrame = Program.MainTimeline.selectedTime; Program.MainTimeline.ClearSelection(); Program.MainTimeline.selectedItems.Select(TargetLayer, TargetFrameset, AddedFrame); TargetFrameset.Keyframes.Add(AddedFrame); TargetFrameset.Keyframes = TargetFrameset.Keyframes.OrderBy(o => o.Time).ToList(); AddedFrameIndex = TargetFrameset.Keyframes.IndexOf(AddedFrame); Program.MainTimeline.GLContext.Invalidate(); return true; }
public KeyframeRemoveAction(Layer layer, Frameset frameset, Keyframe frame) { LayerIndex = Program.ActiveProject.Layers.IndexOf(layer); FramesetIndex = layer.Framesets.IndexOf(frameset); RemovedKeyframe = frame; RemovedKeyframeIndex = frameset.Keyframes.IndexOf(RemovedKeyframe); }
public KeyframeChangeInterpModeAction(Layer l, Frameset f, Keyframe frame, EntityInterpolationMode target) { LayerIndex = Program.ActiveProject.Layers.IndexOf(l); FramesetIndex = l.Framesets.IndexOf(f); KeyframeIndex = f.Keyframes.IndexOf(frame); TargetMode = target; }
public KeyframeMoveAction(Layer layer, Frameset frameset, Keyframe frame, uint time) { LayerIndex = Program.ActiveProject.Layers.IndexOf(layer); FramesetIndex = layer.Framesets.IndexOf(frameset); KeyframeIndex = frameset.Keyframes.IndexOf(frame); TargetKeyframe = frame; OriginalTime = time; NewTime = frame.Time; }
public bool Undo() { Layer TargetLayer = Program.ActiveProject.Layers[LayerIndex]; Frameset TargetFrameset = TargetLayer.Framesets[FramesetIndex]; TargetFrameset.Keyframes.RemoveAt(AddedFrameIndex); Program.MainTimeline.ClearSelection(); Program.MainTimeline.selectedItems.Select(SelectionType.BlankFrame, PrevSelectedFrame); AddedFrame = null; PrevSelectedFrame = -1; Program.MainTimeline.GLContext.Invalidate(); return true; }