// Init
        //------------------------------------------------------------------------
        public void Init(FUNC_RETARGET_SINGLE_POSE_IMPORT_ANIM funcResult_Anim, FUNC_RETARGET_SINGLE_POSE_IMPORT_MOD funcResult_Mod,
                         apEditor editor, object loadKey, apMeshGroup targetMeshGroup,
                         apModifierBase targetModifier, apModifierParamSet targetParamSet,                                //<<일반 Modifier에서 작업하는 경우
                         apAnimClip targetAnimClip, apAnimTimeline targetAnimTimeline, int targetFrame)
        {
            _editor          = editor;
            _loadKey         = loadKey;
            _targetMeshGroup = targetMeshGroup;

            _funcResult_Anim = funcResult_Anim;
            _funcResult_Mod  = funcResult_Mod;

            _targetModifier     = targetModifier;
            _targetParamSet     = targetParamSet;
            _targetAnimClip     = targetAnimClip;
            _targetAnimTimeline = targetAnimTimeline;
            _targetFrame        = targetFrame;

            //_imgIcon_Bone = _editor.ImageSet.Get(apImageSet.PRESET.Hierarchy_Bone);

            _category = CATEGORY.SameMeshGroup;

            _retarget.LoadSinglePoseFileList(editor);
            _selectedBonePoseFile = null;
            _isValidPose          = false;

            _meshGroupUniqueID = _targetMeshGroup._uniqueID;
            _portraitName      = _targetMeshGroup._parentPortrait.name;
        }
        private static object ShowDialog(FUNC_RETARGET_SINGLE_POSE_IMPORT_ANIM funcResult_Anim, FUNC_RETARGET_SINGLE_POSE_IMPORT_MOD funcResult_Mod, apEditor editor, apMeshGroup targetMeshGroup,
                                         apModifierBase targetModifier, apModifierParamSet targetParamSet,             //<<일반 Modifier에서 작업하는 경우
                                         apAnimClip targetAnimClip, apAnimTimeline targetAnimTimeline, int targetFrame //<<애니메이션에서 Pose를 여는 경우
                                         )
        {
            CloseDialog();

            if (editor == null || editor._portrait == null || editor._portrait._controller == null)
            {
                return(null);
            }



            EditorWindow curWindow = EditorWindow.GetWindow(typeof(apDialog_RetargetSinglePoseImport), true, "Import Pose", true);
            apDialog_RetargetSinglePoseImport curTool = curWindow as apDialog_RetargetSinglePoseImport;

            object loadKey = new object();

            if (curTool != null && curTool != s_window)
            {
                int width  = 500;
                int height = 700;
                s_window          = curTool;
                s_window.position = new Rect((editor.position.xMin + editor.position.xMax) / 2 - (width / 2),
                                             (editor.position.yMin + editor.position.yMax) / 2 - (height / 2),
                                             width, height);

                s_window.Init(funcResult_Anim, funcResult_Mod, editor, loadKey, targetMeshGroup,
                              targetModifier, targetParamSet,
                              targetAnimClip, targetAnimTimeline, targetFrame);

                return(loadKey);
            }
            else
            {
                return(null);
            }
        }
 // Show Window / Close Dialog
 //------------------------------------------------------------------------
 public static object ShowDialog(FUNC_RETARGET_SINGLE_POSE_IMPORT_ANIM funcResult_Anim, apEditor editor, apMeshGroup targetMeshGroup,
                                 apAnimClip targetAnimClip, apAnimTimeline targetAnimTimeline, int targetFrame)
 {
     return(ShowDialog(funcResult_Anim, null, editor, targetMeshGroup, null, null, targetAnimClip, targetAnimTimeline, targetFrame));
 }