1 line
18 KiB
JavaScript
1 line
18 KiB
JavaScript
|
|
"use strict";function e(e,t){var a=[t,0];return I.apply(a,x.call(arguments,2)),O.apply(e,a),e}var t=function(e){return e&&e.__esModule?e["default"]:e},a=function(){function e(e,t){for(var a in t){var i=t[a];i.configurable=!0,i.value&&(i.writable=!0)}Object.defineProperties(e,t)}return function(t,a,i){return a&&e(t.prototype,a),i&&e(t,i),t}}(),i=function E(e,t,a){var i=Object.getOwnPropertyDescriptor(e,t);if(void 0===i){var r=Object.getPrototypeOf(e);return null===r?void 0:E(r,t,a)}if("value"in i&&i.writable)return i.value;var s=i.get;if(void 0!==s)return s.call(a)},r=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)},s=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},n=require("events").EventEmitter,o=require("jibo-keyframes"),y=t(o),u=t(o),l=t(require("jibo-keyframes/lib/jibo-keyframe-info")),h=t(require("lodash")),f=t(require("../../common/undo-redo")),c=t(require("../../common/clipboard")),m=require("animation-utilities"),d=m.RobotInfo,v=m.JiboConfig,p=t(require("./keyframe-selection")),g=t(require("fs")),k=t(require("path")),L=require("crypto"),S="win32"===process.platform?process.env.HOMEPATH:process.env.HOME,K=k.resolve(S,".jibo");g.existsSync(K)||g.mkdirSync(K);var T=k.resolve(K,"temp");g.existsSync(T)||g.mkdirSync(T);var b=function(t){function n(e,t){s(this,n),i(Object.getPrototypeOf(n.prototype),"constructor",this).call(this),this.setMaxListeners(100),this.limits={},this.editor=e,this.projectRoot=t,this.state={selection:{layers:[null]}},this.keyframeSelection=new p(this),this.uiState={currentTime:0,currentKeyframe:0,isPlaying:!1},this.getDofLimits(),this._reloadFile(e.uri);var a=L.createHash("md5");a.update(e.uri);var r=a.digest("hex"),o=k.basename(r),y=T+"/"+o+".backup";g.existsSync(y)||this.backup(),this.undoRedo=new f(this)}return r(n,t),a(n,{dispose:{value:function(){delete this.state,delete this.uiState,this.requestAnimationID&&window.cancelAnimationFrame(this.requestAnimationID)}},getDofLimits:{value:function(){var e=this,t=new v;d.createInfo(t,function(t){t.getBodyDOFNames().forEach(function(a){var i=u.channels.dofNameToDisplayName(a);e.limits[i]={};var r=t.getDOFInfo(a),s=r.getLimit("velocity"),n=r.getLimit("acceleration");e.limits[i].velocityLimit=s,e.limits[i].accelerationLimit=n}),e.robotInfo=t,e.emit("onpropertieschanged")})}},setLimit:{value:function(e,t){this.limits.exceedsVelLimit=e,this.limits.exceedsAccelLimit=t}},getKeyframeInfo:{value:function(){return l}},getLayer:{value:function(e){for(var t=0;t<this.state.keyframes.layers.length;t++)if(this.state.keyframes.layers[t].id===e)return this.state.keyframes.layers[t];return null}},getLayersOfType:{value:function(e){e=Array.isArray(e)?e:[e];var t=h.filter(this.state.keyframes.layers,function(t){return h.includes(e,t.type)});return t}},isLayerOfTypeSelected:{value:function(e){return e=Array.isArray(e)?e:[e],h.includes(e,this.keyframeSelection.getSelectionLayerType())}},deleteLayerById:{value:function(e){for(var t=this.getSelectedLayer().id,a=0;a<this.state.keyframes.layers.length;a++)if(this.state.keyframes.layers[a].id===e)return this.state.keyframes.layers.splice(a,1),0===this.state.keyframes.layers.length?this.state.selection.layers[0]=null:t===e&&this.setSelection(this.state.keyframes.layers[0].id),this.syncOverrides(),this.emit("ondatachanged"),void this.emit("onpropertieschanged")}},setLayerName:{value:function(e,t){var a=this.getLayer(e);a.name=t,this.emit("ondatachanged"),this.emit("onpropertieschanged")}},generateID:{value:function(){return Math.floor(0x12ab3babf5f80c00*Math.random()).toString(16)}},_findNameForLayer:{value:function(e){if(null===this.getLayerByName(e))return e;for(var t=1;1e5>t;t++){var a=""+e+" #"+t;if(null===this.getLayerByName(a))return a}}},addLayer:{value:function(e){this.state.keyframes.layers.push({id:y.generateId(),name:this._findNameForLayer(e),type:e,visible:!
|