//recompute = compute even data is already exist public List <int[]> getKeyPose(Boolean recompute, Boolean saveData) { if (Path.GetExtension(path_key) != ThePosExtract.extension_key) { path_key = ""; this.keyPose.Clear(); } if (recompute) { this.keyPose.Clear(); } if (this.keyPose.Count == 0) { if (path_key == "") { path_key = TheTool.getFilePathExcludeExtension_byPath(path) + ThePosExtract.extension_key; path_keyJ = TheTool.getFilePathExcludeExtension_byPath(path) + ".j"; } if (recompute == false) { this.keyPose = TheUKI.loadKeyPose(path_key);// .key is exist this.keyPoseJump = TheUKI.loadKeyJump(path_keyJ); } if (recompute || (this.keyPose.Count == 0 && !TheTool.checkPathExist(path_key))) { if (recompute == false && !TheTool.checkPathExist(path_key)) { TheSys.showError("Not Found: " + path_key); } this.keyPose = ThePosExtract.extractKeyPose(this); this.keyPoseJump = new List <int_double>(); this.keyPoseJump.AddRange(ThePosExtract.list_jump_selected); if (saveData) { TheUKI.exportKey(path_key, keyPose); if (ThePosExtract.capJumping) { TheUKI.exportKeyJ(path_keyJ, keyPoseJump); } } } } return(keyPose); }