//-------------------------------------------------------------------- // 3. Vertex Rigging //-------------------------------------------------------------------- public void Copy_VertRig(apModifiedVertexRig modVertRig, string snapShotName) { _clipboard_VertRig = new apSnapShotStackUnit(snapShotName); bool result = _clipboard_VertRig.SetSnapShot_VertRig(modVertRig, "Clipboard"); if (!result) { _clipboard_VertRig = null; //<<저장 불가능하다. } }
//-------------------------------------------------------------------- // 2. Keyframe //-------------------------------------------------------------------- public void Copy_Keyframe(apAnimKeyframe keyframe, string snapShotName) { _clipboard_Keyframe = new apSnapShotStackUnit(snapShotName); bool result = _clipboard_Keyframe.SetSnapShot_Keyframe(keyframe, "Clipboard"); if (!result) { _clipboard_Keyframe = null; //<<저장 불가능하다. } }
//-------------------------------------------------------------------- // 1-2. ModBone //-------------------------------------------------------------------- public void Copy_ModBone(apModifiedBone modBone, string snapShotName) { _clipboard_ModBone = new apSnapShotStackUnit(snapShotName); bool result = _clipboard_ModBone.SetSnapShot_ModBone(modBone, "Clipboard"); if (!result) { _clipboard_ModBone = null; //<<저장 불가능하다. } }
// Functions //------------------------------------------- // Copy / Paste //-------------------------------------------------------------------- // 1. ModMesh //-------------------------------------------------------------------- public void Copy_ModMesh(apModifiedMesh modMesh, string snapShotName) { _clipboard_ModMesh = new apSnapShotStackUnit(snapShotName); bool result = _clipboard_ModMesh.SetSnapShot_ModMesh(modMesh, "Clipboard"); if (!result) { _clipboard_ModMesh = null; //<<저장 불가능하다. } }
public void Clear() { _clipboard_ModMesh = null; _clipboard_Keyframe = null; _clipboard_VertRig = null; _clipboard_ModBone = null; _snapShotList.Clear(); //_curSnapShot = null; //_iCurSnapShot = -1; //_restoredSnapShot = false; }
//-------------------------------------------------------------------- // 2.5. Keyframe 여러개 복사하기 //-------------------------------------------------------------------- //추가 3.29 : 타임라인 UI에서 키프레임들을 Ctrl+C로 복사하기 public void Copy_KeyframesOnTimelineUI(apAnimClip animClip, List <apAnimKeyframe> keyframes) { if (animClip == null || keyframes == null || keyframes.Count == 0) { _clipboard_AnimClipOfKeyframes = null; _clipboard_Keyframes = null; _copied_keyframes_StartFrame = -1; _copied_keyframes_EndFrame = -1; return; } _clipboard_AnimClipOfKeyframes = animClip; if (_clipboard_Keyframes == null) { _clipboard_Keyframes = new List <apSnapShotStackUnit>(); } else { _clipboard_Keyframes.Clear(); } _copied_keyframes_StartFrame = -1; _copied_keyframes_EndFrame = -1; apAnimKeyframe srcKeyframe = null; for (int i = 0; i < keyframes.Count; i++) { srcKeyframe = keyframes[i]; apSnapShotStackUnit newUnit = new apSnapShotStackUnit("Keyframe"); newUnit.SetSnapShot_Keyframe(srcKeyframe, "Clipboard"); _clipboard_Keyframes.Add(newUnit); if (i == 0) { _copied_keyframes_StartFrame = srcKeyframe._frameIndex; _copied_keyframes_EndFrame = srcKeyframe._frameIndex; } else { _copied_keyframes_StartFrame = Mathf.Min(_copied_keyframes_StartFrame, srcKeyframe._frameIndex); _copied_keyframes_EndFrame = Mathf.Max(_copied_keyframes_EndFrame, srcKeyframe._frameIndex); } } }