public static UndoRedoStackData GetUndoData() { UndoRedoStackData _retVal = _undoList[_undoList.Count - 1]; _undoList.RemoveAt(_undoList.Count - 1); return(_retVal); }
// -------------------- Undo / Redo Sequence -------------------- public static void UndoSequence() { UndoRedoStackData _undoData = GetUndoData(); switch (_undoData.TargetWorkType) { case UndoRedoWorkType.GraphCreate: { GraphDeleteSequence(_undoData.TargetGraphUID, false); break; } case UndoRedoWorkType.GraphDelete: { switch (_undoData.TargetGraphType) { case GraphType.Scene: currentVinove.RestoreGraph(_undoData.TargetScene); break; case GraphType.Branch: currentVinove.RestoreGraph(_undoData.TargetBranch); break; case GraphType.Merge: currentVinove.RestoreGraph(_undoData.TargetMerge); break; case GraphType.Script: currentVinove.RestoreGraph(_undoData.TargetScript); break; } break; } case UndoRedoWorkType.GraphMove: { switch (_undoData.TargetGraphType) { case GraphType.Scene: currentVinove.FindSceneWithUID(_undoData.TargetGraphUID).Position = _undoData.TargetScene.Position; break; case GraphType.Branch: currentVinove.FindBranchWithUID(_undoData.TargetGraphUID).Position = _undoData.TargetBranch.Position; break; case GraphType.Merge: currentVinove.FindMergeWithUID(_undoData.TargetGraphUID).Position = _undoData.TargetMerge.Position; break; case GraphType.Script: currentVinove.FindSceneWithUID(_undoData.TargetScript.ParentSceneUID).FindScriptWithUID(_undoData.TargetGraphUID).Position = _undoData.TargetScript.Position; break; } break; } } }
/// <summary> /// <para>Eng. Push 'Move' into Undo Stack </para> /// <para>Kor. Undo 스택에 '이동' 스택을 넣습니다. </para> /// </summary> /// <param name="_targetUID"> /// <para>Eng. Target Graph UID </para> /// <para>Kor. 대상 그래프의 UID 입니다. </para></param> /// <param name="_script"> /// <para>Eng. Target Graph Data </para> /// <para>Kor. 대상 그래프 데이터입니다. </para></param> public static void UndoStackMove(string _targetUID, VinoveScript _script) { UndoRedoStackData _stackData = new UndoRedoStackData(UndoRedoWorkType.GraphMove, GraphType.Script, _targetUID); _stackData.SetGraphData(_script); AddUndoData(_stackData); }
/// <summary> /// <para>Eng. Push 'Move' into Undo Stack </para> /// <para>Kor. Undo 스택에 '이동' 스택을 넣습니다. </para> /// </summary> /// <param name="_targetUID"> /// <para>Eng. Target Graph UID </para> /// <para>Kor. 대상 그래프의 UID 입니다. </para></param> /// <param name="_merge"> /// <para>Eng. Target Graph Data </para> /// <para>Kor. 대상 그래프 데이터입니다. </para></param> public static void UndoStackMove(string _targetUID, VinoveMerge _merge) { UndoRedoStackData _stackData = new UndoRedoStackData(UndoRedoWorkType.GraphMove, GraphType.Merge, _targetUID); _stackData.SetGraphData(_merge); AddUndoData(_stackData); }
/// <summary> /// <para>Eng. Push 'Move' into Undo Stack </para> /// <para>Kor. Undo 스택에 '이동' 스택을 넣습니다. </para> /// </summary> /// <param name="_targetUID"> /// <para>Eng. Target Graph UID </para> /// <para>Kor. 대상 그래프의 UID 입니다. </para></param> /// <param name="_branch"> /// <para>Eng. Target Graph Data </para> /// <para>Kor. 대상 그래프 데이터입니다. </para></param> public static void UndoStackMove(string _targetUID, VinoveBranch _branch) { UndoRedoStackData _stackData = new UndoRedoStackData(UndoRedoWorkType.GraphMove, GraphType.Branch, _targetUID); _stackData.SetGraphData(_branch); AddUndoData(_stackData); }
// -------------------- Undo - Delete -------------------- /// <summary> /// <para>Eng. Push 'Delete' into Undo Stack </para> /// <para>Kor. Undo 스택에 '삭제' 스택을 넣습니다. </para> /// </summary> /// <param name="_targetUID"> /// <para>Eng. Target Graph UID </para> /// <para>Kor. 대상 그래프의 UID 입니다. </para></param> /// <param name="_scene"> /// <para>Eng. Target Graph Data </para> /// <para>Kor. 대상 그래프 데이터입니다. </para></param> public static void UndoStackDelete(string _targetUID, VinoveScene _scene) { UndoRedoStackData _stackData = new UndoRedoStackData(UndoRedoWorkType.GraphDelete, GraphType.Scene, _targetUID); _stackData.SetGraphData(_scene); AddUndoData(_stackData); }
public static void AddUndoData(UndoRedoStackData _stackData) { if (_undoList.Count < 20) { _undoList.Add(_stackData); } else { _undoList.RemoveAt(0); _undoList.Add(_stackData); } }