"use strict";var e=require("animation-utilities"),t=e.MouseCoordinateWrangler,n=e.THREE,r={DOF_VALUES_CHANGED:"DOF_VALUES_CHANGED",DOF_SELECTION_CHANGED:"DOF_SELECTION_CHANGED",DOF_MANIPULATION_ENDED:"DOF_MANIPULATION_ENDED"},o={BODY:"BODY"},s=function(e,t,n,r){if(n!==o.BODY)throw new Error("DOFController: unsupported controller type: "+n);return new u(e,t,n,r)},i="topSection_r",l="middleSection_r",a="bottomSection_r",u=function(e,t,o,s){this.renderer=e,this.scene=e.scene,this.controllerType=o,this.robotInfo=s,this.renderer.setGrid(.1,4,new n.Color(.2,.2,.2)),this.dofValues={};for(var u=s.getDOFNames(),d=0;d0){n=c.getSelectedDOFs()[0],O=!0;var o=.5*e.movementX*Math.PI/180,s=c.dofValues[n]+o,u={};u[n]=s,e.shiftKey&&(n===l&&(u[i]=c.dofValues[i]-o),n===a&&(u[l]=c.dofValues[l]-o)),c.setDOFValues(u),c._fireEvent(r.DOF_VALUES_CHANGED,u)}}else n=h(e,v,c.scene.getScene(),c.scene.getCamera()),n&&(c.setSelectedDOFs([n]),c._fireEvent(r.DOF_SELECTION_CHANGED,c.getSelectedDOFs()))},_=function(e){return f?void(E&&p(e)&&F(e,!0)):(e.preventDefault(),void e.stopPropagation())},g=function(){f&&(f=!1,E&&(O&&(O=!1,c._fireEvent(r.DOF_MANIPULATION_ENDED)),null!==c.getSelectedDOFs()&&c.getSelectedDOFs().length>0&&(c.setSelectedDOFs([]),c._fireEvent(r.DOF_SELECTION_CHANGED,c.getSelectedDOFs()))))},m=function(e){f=!0,E&&p(e)&&F(e,!1)};this.detachFromContainer=function(e){(void 0===e||e===!0)&&c.renderer.detachFromContainer(),null!==v&&(v.removeEventListener("mousemove",_,D),v.removeEventListener("mouseup",g,D),v.removeEventListener("mouseleave",g,D),v.removeEventListener("mousedown",m,D),O&&(O=!1,c._fireEvent(r.DOF_MANIPULATION_ENDED)),null!==c.getSelectedDOFs()&&c.getSelectedDOFs().length>0&&(c.setSelectedDOFs([]),c._fireEvent(r.DOF_SELECTION_CHANGED,c.getSelectedDOFs())),E=!1,v=null)},this.attachToContainer=function(e,t){c.detachFromContainer(t),v=void 0!==e?e:null,null!==v&&((void 0===t||t===!0)&&c.renderer.attachToContainer(v),v.addEventListener("mousemove",_,D),v.addEventListener("mouseup",g,D),v.addEventListener("mouseleave",g,D),v.addEventListener("mousedown",m,D),E=!0)},this.dispose=function(e){c.detachFromContainer(!1),null!==c.renderer&&((void 0===e||e===!0)&&c.renderer.dispose(),c.renderer=null),c.scene=null,c.robotInfo=null,c.eventListeners=null},this.attachToContainer(t,!1)};u.prototype.getDOFValues=function(){return this.dofValues},u.prototype.setDOFValues=function(e){for(var t=Object.keys(e),n=0;n0){var u=c[a[0].object.name];return u||null}return null};module.exports.EventType=r,module.exports.ControllerType=o,module.exports.createWithRenderer=s;