babylonjs-editcontrol 3.2.5 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- !function(t,i){if("object"==typeof exports&&"object"==typeof module)module.exports=i(require("babylonjs"));else if("function"==typeof define&&define.amd)define(["babylonjs"],i);else{var h="object"==typeof exports?i(require("babylonjs")):i(t.BABYLON);for(var s in h)("object"==typeof exports?exports:t)[s]=h[s]}}(window,(function(t){return function(t){var i={};function h(s){if(i[s])return i[s].exports;var n=i[s]={i:s,l:!1,exports:{}};return t[s].call(n.exports,n,n.exports,h),n.l=!0,n.exports}return h.m=t,h.c=i,h.d=function(t,i,s){h.o(t,i)||Object.defineProperty(t,i,{enumerable:!0,get:s})},h.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"h",{value:!0})},h.t=function(t,i){if(1&i&&(t=h(t)),8&i)return t;if(4&i&&"object"==typeof t&&t&&t.h)return t;var s=Object.create(null);if(h.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:t}),2&i&&"string"!=typeof t)for(var n in t)h.d(s,n,function(i){return t[i]}.bind(null,n));return s},h.n=function(t){var i=t&&t.h?function(){return t.default}:function(){return t};return h.d(i,"a",i),i},h.o=function(t,i){return Object.prototype.hasOwnProperty.call(t,i)},h.p="",h(h.s=1)}([function(i,h){i.exports=t},function(t,i,h){"use strict";h.r(i),h.d(i,"EditControl",(function(){return u}));var s,n=h(0);!function(t){t[t.TRANS=0]="TRANS",t[t.ROT=1]="ROT",t[t.SCALE=2]="SCALE"}(s||(s={}));var u=function(){function t(t,i,h,s,u,e){var f=this;this.u=!0,this.v=!1,this.M=!1,this.L=1,this.A=Math.PI/18,this.j=.4,this.O=1,this.S=.02,this.R=new n.Color3(1,.2,.2),this.T=new n.Color3(.2,1,.2),this.g=new n.Color3(.2,.2,1),this.k=new n.Color3(1,1,1),this.q=new n.Color3(1,1,.2),this.C=.75,this._=!1,this.N=new n.Matrix,this.B=new n.Vector3(0,0,0),this.D=2,this.F=new n.Vector3(0,0,0),this.G=new n.Vector3(0,0,0),this.H="",this.I=!1,this.J=null,this.K=null,this.P=null,this.U=!1,this.V=!1,this.W=!1,this.$=!1,this.tt=new n.Vector3(0,0,0),this.it=new n.Vector3(0,0,0),this.ht=!1,this.st=new n.Vector3(0,0,0),this.nt=.25,this.ut=new n.Vector3(0,0,0),this.rt=new n.Vector3(0,0,0),this.et=new n.Vector3(0,0,0),this.ft=new n.Vector3(0,0,0),this.ot=!1,this.lt=0,this.ct=!1,this.at=!1,this.vt=!1,this.wt=180,this.Mt=new n.Vector3(this.L,this.L,this.L),this.Xt=new n.Vector3(0,0,0),this.Yt=new n.Vector3(0,0,0),this.Zt=new n.Vector3(0,0,0),this.bt=new n.Matrix,this.Lt=t,this.pt=i,this.dt=h,null!=s&&(this.O=s),this.ot=null!==u&&u,this.yt(),null!=e&&(this.S=e),this.At=t.getScene(),this.jt=new r(t,10),t.computeWorldMatrix(!0),this.zt=this.Ot(t),this.St(t),this._=this.xt(t),console.log("lhs rhs issue "+this._),this.Et=new n.Mesh("",this.At),this.Et.rotationQuaternion=n.Quaternion.Identity(),this.Et.visibility=0,this.Et.isPickable=!1,this.Rt(this.At),this.Tt().parent=this.Et,this.gt().parent=this.Et,this.kt=function(t){return f.qt(t)},this.Ct=function(t){return f._t(t)},this.Nt=function(t){return f.Qt(t)},h.addEventListener("pointerdown",this.kt,!1),h.addEventListener("pointerup",this.Ct,!1),h.addEventListener("pointermove",this.Nt,!1),this.Bt=function(){return f.Dt()},this.At.registerBeforeRender(this.Bt)}return t.prototype.getRoot=function(){return this.Et},t.prototype.yt=function(){if(!this.ot&&(null==this.Lt.rotationQuaternion||null==this.Lt.rotationQuaternion))throw"Error: Eulerian is set to false but the mesh's rotationQuaternion is not set."},t.prototype.xt=function(t){var i=!1,h=t.parent;if(null==h)return!1;this.St(h);var s=n.Vector3.Cross(this.rt,this.et);return i=n.Vector3.Dot(s,this.ft)<0,this.St(t),i},t.prototype.Dt=function(){this.Et.position=this.Lt.getAbsolutePivotPoint(),this.Ft(),this.Gt(),this.u?(this.Et.getWorldMatrix().invertToRef(this.N),n.Vector3.TransformCoordinatesToRef(this.pt.position,this.N,this.B),this.Ht.lookAt(this.B,0,0,0,n.Space.LOCAL)):(this.pt.position.subtractToRef(this.Et.position,this.B),this.Ht.lookAt(this.pt.position,0,0,0,n.Space.WORLD)),this.at?this.It():this.ct?this.Jt(this.Kt,this.Pt,this.Ut):this.vt&&this.Jt(this.Vt,this.Wt,this.$t)},t.prototype.Ft=function(){if(this.u)if(null==this.Lt.parent)if(this.ot){var t=this.Lt.rotation;n.Quaternion.RotationYawPitchRollToRef(t.y,t.x,t.z,this.Et.rotationQuaternion)}else this.Et.rotationQuaternion.copyFrom(this.Lt.rotationQuaternion);else{if(this.ti(this.Lt))return;this.Lt.getWorldMatrix().getRotationMatrixToRef(this.bt),n.Quaternion.FromRotationMatrixToRef(this.bt,this.Et.rotationQuaternion)}},t.prototype.ti=function(t){if(null==t.parent)return!1;for(;null!=t.parent;){if(t.parent.scaling.x!=t.parent.scaling.y||t.parent.scaling.y!=t.parent.scaling.z)return!0;t=t.parent}return!1},t.prototype.Gt=function(){this.Et.position.subtractToRef(this.pt.position,this.F),n.Vector3.FromFloatArrayToRef(this.pt.getWorldMatrix().asArray(),8,this.G);var t=n.Vector3.Dot(this.F,this.G)/this.G.length(),i=Math.abs(t/this.D);n.Vector3.FromFloatsToRef(i,i,i,this.Et.scaling)},t.prototype.It=function(){var t=Math.atan(this.B.y/this.B.z);this.B.z>=0?this.ii.rotation.x=-t:this.ii.rotation.x=-t-Math.PI;var i=Math.atan(this.B.x/this.B.z);this.B.z>=0?this.hi.rotation.y=i:this.hi.rotation.y=i+Math.PI;var h=Math.atan(this.B.x/this.B.y);this.B.y>=0?this.si.rotation.z=-h:this.si.rotation.z=-h-Math.PI},t.prototype.Jt=function(t,i,h){var s=this.B;t.rotation.x=0,t.rotation.y=0,t.rotation.z=0,i.rotation.x=0,i.rotation.y=0,i.rotation.z=0,h.rotation.x=0,h.rotation.y=0,h.rotation.z=0,s.x<=0&&s.y>=0&&s.z>=0?(t.rotation.z=3.14,h.rotation.y=3.14):s.x<=0&&s.y>=0&&s.z<=0?(t.rotation.y=3.14,i.rotation.y=3.14,h.rotation.y=3.14):s.x>=0&&s.y>=0&&s.z<=0?(t.rotation.x=3.14,i.rotation.y=3.14):s.x>=0&&s.y<=0&&s.z>=0?(i.rotation.z=3.14,h.rotation.x=3.14):s.x<=0&&s.y<=0&&s.z>=0?(t.rotation.z=3.14,i.rotation.z=3.14,h.rotation.z=3.14):s.x<=0&&s.y<=0&&s.z<=0?(t.rotation.y=3.14,i.rotation.x=3.14,h.rotation.z=3.14):s.x>=0&&s.y<=0&&s.z<=0&&(t.rotation.x=3.14,i.rotation.x=3.14,h.rotation.x=3.14)},t.prototype.switchTo=function(t,i){t.computeWorldMatrix(!0),this.Lt=t,null!=i&&(this.ot=i),this.yt(),this.St(t),this.jt=new r(t,10),this._=this.xt(t),this.refreshBoundingInfo()},t.prototype.switchCamera=function(t){this.pt=t},t.prototype.setUndoCount=function(t){this.jt.setCapacity(t)},t.prototype.undo=function(){var t=this.jt.undo();this.Lt.computeWorldMatrix(!0),this.St(this.Lt),this.ni(t),this.ui(t),this.ri(t)},t.prototype.redo=function(){var t=this.jt.redo();this.Lt.computeWorldMatrix(!0),this.St(this.Lt),this.ni(t),this.ui(t),this.ri(t)},t.prototype.detach=function(){this.dt.removeEventListener("pointerdown",this.kt,!1),this.dt.removeEventListener("pointerup",this.Ct,!1),this.dt.removeEventListener("pointermove",this.Nt,!1),this.At.unregisterBeforeRender(this.Bt),this.removeAllActionListeners(),this.ei()},t.prototype.hide=function(){this.I=!0,this.ct?(this.H="T",this.disableTranslation()):this.at?(this.H="R",this.disableRotation()):this.vt&&(this.H="S",this.disableScaling()),this.fi()},t.prototype.fi=function(){this.oi.visibility=0,this.li.visibility=0,this.ci.visibility=0},t.prototype.ai=function(){this.oi.visibility=this.C,this.li.visibility=this.C,this.ci.visibility=this.C},t.prototype.show=function(){this.I=!1,this.ai(),"T"==this.H?this.enableTranslation():"R"==this.H?this.enableRotation():"S"==this.H&&this.enableScaling()},t.prototype.isHidden=function(){return this.I},t.prototype.ei=function(){this.Et.dispose(),this.vi(),this.jt=null},t.prototype.addActionListener=function(t){this.J=t},t.prototype.removeActionListener=function(){this.J=null},t.prototype.addActionStartListener=function(t){this.K=t},t.prototype.removeActionStartListener=function(){this.K=null},t.prototype.addActionEndListener=function(t){this.P=t},t.prototype.removeActionEndListener=function(){this.P=null},t.prototype.removeAllActionListeners=function(){this.J=null,this.K=null,this.P=null},t.prototype.qt=function(t){var i=this;if(t.preventDefault(),this.U=!0,0==t.button){var h=this.At.getEngine(),s=h.isPointerLock?.5*this.dt.width:this.At.pointerX,n=h.isPointerLock?.5*this.dt.height:this.At.pointerY,u=this.At.pick(s,n,(function(t){if(i.ct){if(t==i.wi||t==i.Mi||t==i.Xi||t==i.Kt||t==i.Pt||t==i.Ut||t==i.Yi)return!0}else if(i.at){if(t==i.ii||t==i.hi||t==i.si||t==i.Zi)return!0}else if(i.vt&&(t==i.bi||t==i.Li||t==i.pi||t==i.Vt||t==i.Wt||t==i.$t||t==i.di))return!0;return!1}),null,this.pt);if(u.hit){this.yi=u.pickedMesh;var r=this.yi.getChildren();r.length>0?r[0].visibility=this.C:this.yi.visibility=this.C;var e=this.yi.name;"X"==e?this.Ai.visibility=1:"Y"==e?this.ji.visibility=1:"Z"==e?this.zi.visibility=1:"XZ"==e?(this.Ai.visibility=1,this.zi.visibility=1):"ZY"==e?(this.zi.visibility=1,this.ji.visibility=1):"YX"==e?(this.ji.visibility=1,this.Ai.visibility=1):"ALL"==e&&(this.Ai.visibility=1,this.ji.visibility=1,this.zi.visibility=1),this.mi(!0),this.Oi=this.Si(this.yi),null!=this.Oi?this.xi=this.Ei():this.xi=null,window.setTimeout((function(t,h){return i.Ri(t,h)}),0,this.pt,this.dt)}}},t.prototype.mi=function(t){this.W=t,t?(this.Ti(),this.gi==s.ROT&&(this.lt=0),this.ni(this.gi)):this.ri(this.gi)},t.prototype.isEditing=function(){return this.W},t.prototype.Ri=function(t,i){var h=t,s=i;this.At.getEngine().isPointerLock||h.detachControl(s)},t.prototype.isPointerOver=function(){return this.V},t.prototype.ki=function(){var t=this,i=this.At.getEngine(),h=i.isPointerLock?.5*this.dt.width:this.At.pointerX,s=i.isPointerLock?.5*this.dt.height:this.At.pointerY,n=this.At.pick(h,s,(function(i){if(t.ct){if(i==t.wi||i==t.Mi||i==t.Xi||i==t.Kt||i==t.Pt||i==t.Ut||i==t.Yi)return!0}else if(t.at){if(i==t.ii||i==t.hi||i==t.si||i==t.Zi)return!0}else if(t.vt&&(i==t.bi||i==t.Li||i==t.pi||i==t.Vt||i==t.Wt||i==t.$t||i==t.di))return!0;return!1}),null,this.pt);if(n.hit){if(n.pickedMesh!=this.qi){if(this.V=!0,this.Ci(),this.qi=n.pickedMesh,this.at)this._i=this.qi.getChildren()[0].color,this.qi.getChildren()[0].color=this.k;else{var u=this.qi.getChildren();u.length>0?(this.Ni=u[0].material,u[0].material=this.Qi):(this.Ni=this.qi.material,this.qi.material=this.Qi)}"X"==this.qi.name?this.oi.color=this.k:"Y"==this.qi.name?this.li.color=this.k:"Z"==this.qi.name&&(this.ci.color=this.k)}}else this.V=!1,null!=this.qi&&(this.Bi(this.qi),this.qi=null)},t.prototype.Ci=function(){null!=this.qi&&(this.qi.visibility=0,this.Bi(this.qi))},t.prototype.Bi=function(t){switch(t.name){case"X":this.oi.color=this.R;break;case"Y":this.li.color=this.T;break;case"Z":this.ci.color=this.g}if(this.at)t.getChildren()[0].color=this._i;else{var i=t.getChildren();i.length>0?i[0].material=this.Ni:t.material=this.Ni}},t.prototype._t=function(t){(this.U=!1,this.W)&&(this.At.getEngine().isPointerLock||this.pt.attachControl(this.dt),this.mi(!1),this.Di(),null!=this.qi&&(this.Bi(this.qi),this.qi=null),this.jt.add(this.gi))},t.prototype.Ti=function(){this.ct?this.gi=s.TRANS:this.at?this.gi=s.ROT:this.vt&&(this.gi=s.SCALE)},t.prototype.ui=function(t){null!=this.J&&this.J(t)},t.prototype.ni=function(t){null!=this.K&&this.K(t)},t.prototype.ri=function(t){null!=this.P&&this.P(t)},t.prototype.Qt=function(t){if(this.U){if(this.W&&null!=this.xi){var i=this.Ei();if(null!=i){if(this.at)this.Fi(this.Lt,this.yi,i,this.xi);else{var h=i.subtract(this.xi);if(0==h.x&&0==h.y&&0==h.z)return;this.ct?this.Gi(h):this.vt&&this.u&&this.Hi(h)}this.xi=i,this.ui(this.gi)}}}else this.ki()},t.prototype.Si=function(t){var i=t.name;if(this.ct||this.vt){if("XZ"==i)return this.Ii;if("ZY"==i)return this.Ji;if("YX"==i)return this.Ki;if("ALL"==i)return this.Ht;this.Et.getWorldMatrix().invertToRef(this.N),n.Vector3.TransformCoordinatesToRef(this.pt.position,this.N,this.B);var h=this.B;if("X"===i)return Math.abs(h.y)>Math.abs(h.z)?this.Ii:this.Ki;if("Z"===i)return Math.abs(h.y)>Math.abs(h.x)?this.Ii:this.Ji;if("Y"===i)return Math.abs(h.z)>Math.abs(h.x)?this.Ki:this.Ji}else{if(!this.at)return null;this.$=!1,this.Et.getWorldMatrix().invertToRef(this.N),n.Vector3.TransformCoordinatesToRef(this.pt.position,this.N,this.B);h=this.B;switch(i){case"X":return Math.abs(h.x)<.2?(this.$=!0,this.Ht):this.Ji;case"Y":return Math.abs(h.y)<.2?(this.$=!0,this.Ht):this.Ii;case"Z":return Math.abs(h.z)<.2?(this.$=!0,this.Ht):this.Ki;default:return this.Ht}}},t.prototype.Gi=function(t){null!=this.Lt.parent&&this.ti(this.Lt)?this.St(this.Et):this.St(this.Lt);var i=this.yi.name;this.tt.x=0,this.tt.y=0,this.tt.z=0,"X"!=i&&"XZ"!=i&&"YX"!=i&&"ALL"!=i||(this.u?this.tt.x=n.Vector3.Dot(t,this.rt)/this.rt.length():this.tt.x=t.x),"Y"!=i&&"ZY"!=i&&"YX"!=i&&"ALL"!=i||(this.u?this.tt.y=n.Vector3.Dot(t,this.et)/this.et.length():this.tt.y=t.y),"Z"!=i&&"XZ"!=i&&"ZY"!=i&&"ALL"!=i||(this.u?this.tt.z=n.Vector3.Dot(t,this.ft)/this.ft.length():this.tt.z=t.z),this.Pi(this.Lt,this.tt,this.u),this.Ui&&(this.Lt.position.x=Math.max(this.Lt.position.x,this.Ui.x),this.Lt.position.y=Math.max(this.Lt.position.y,this.Ui.y),this.Lt.position.z=Math.max(this.Lt.position.z,this.Ui.z)),this.Vi&&(this.Lt.position.x=Math.min(this.Lt.position.x,this.Vi.x),this.Lt.position.y=Math.min(this.Lt.position.y,this.Vi.y),this.Lt.position.z=Math.min(this.Lt.position.z,this.Vi.z)),this.Lt.computeWorldMatrix(!0)},t.prototype.Pi=function(t,i,h){if(this.v){var s=!1;if(this.it.addInPlace(i),Math.abs(this.it.x)>this.Mt.x&&(this.it.x>0?i.x=this.Mt.x:i.x=-this.Mt.x,s=!0),Math.abs(this.it.y)>this.Mt.y&&(this.it.y>0?i.y=this.Mt.y:i.y=-this.Mt.y,s=!0),Math.abs(this.it.z)>this.Mt.z&&(this.it.z>0?i.z=this.Mt.z:i.z=-this.Mt.z,s=!0),!s)return;Math.abs(i.x)!==this.Mt.x&&(i.x=0),Math.abs(i.y)!==this.Mt.y&&(i.y=0),Math.abs(i.z)!==this.Mt.z&&(i.z=0),n.Vector3.FromFloatsToRef(0,0,0,this.it),s=!1}h?(this.rt.normalizeToRef(this.Xt),this.et.normalizeToRef(this.Yt),this.ft.normalizeToRef(this.Zt),this.Lt.translate(this.Xt,i.x,n.Space.WORLD),this.Lt.translate(this.Yt,i.y,n.Space.WORLD),this.Lt.translate(this.Zt,i.z,n.Space.WORLD)):null==this.Lt.parent?this.Lt.position.addInPlace(i):this.Lt.setAbsolutePosition(i.addInPlace(this.Lt.absolutePosition))},t.prototype.Hi=function(t){this.St(this.Lt),this.ut.x=0,this.ut.y=0,this.ut.z=0;var i=this.yi.name;"X"!=i&&"XZ"!=i&&"YX"!=i||(this.ut.x=n.Vector3.Dot(t,this.rt)/this.rt.length(),this.Lt.scaling.x<0&&(this.ut.x=-this.ut.x)),"Y"!=i&&"ZY"!=i&&"YX"!=i||(this.ut.y=n.Vector3.Dot(t,this.et)/this.et.length(),this.Lt.scaling.y<0&&(this.ut.y=-this.ut.y)),"Z"!=i&&"XZ"!=i&&"ZY"!=i||(this.ut.z=n.Vector3.Dot(t,this.ft)/this.ft.length(),this.Lt.scaling.z<0&&(this.ut.z=-this.ut.z));var h=this.zt;if(this.ut.x=this.ut.x/h.x,this.ut.y=this.ut.y/h.y,this.ut.z=this.ut.z/h.z,"ALL"==i){var s=n.Vector3.Dot(t,this.pt.upVector);s/=Math.max(h.x,h.y,h.z),this.ut.copyFromFloats(s,s,s)}else{var u=!1;if("XZ"==i?(u=!0,Math.abs(this.ut.x)>Math.abs(this.ut.z)?this.ut.z=this.ut.x:this.ut.x=this.ut.z):"ZY"==i?(u=!0,Math.abs(this.ut.z)>Math.abs(this.ut.y)?this.ut.y=this.ut.z:this.ut.z=this.ut.y):"YX"==i&&(u=!0,Math.abs(this.ut.y)>Math.abs(this.ut.x)?this.ut.x=this.ut.y:this.ut.y=this.ut.x),u){this.Et.position.subtractToRef(this.pt.position,this.F);s=n.Vector3.Dot(t,this.F);this.ut.x=Math.abs(this.ut.x),this.ut.y=Math.abs(this.ut.y),this.ut.z=Math.abs(this.ut.z),s>0?(this.Lt.scaling.x>0&&(this.ut.x=-this.ut.x),this.Lt.scaling.y>0&&(this.ut.y=-this.ut.y),this.Lt.scaling.z>0&&(this.ut.z=-this.ut.z)):(this.Lt.scaling.x<0&&(this.ut.x=-this.ut.x),this.Lt.scaling.y<0&&(this.ut.y=-this.ut.y),this.Lt.scaling.z<0&&(this.ut.z=-this.ut.z))}}this.Wi(this.Lt,this.ut),this.$i&&(this.Lt.scaling.x=Math.max(this.Lt.scaling.x,this.$i.x),this.Lt.scaling.y=Math.max(this.Lt.scaling.y,this.$i.y),this.Lt.scaling.z=Math.max(this.Lt.scaling.z,this.$i.z)),this.th&&(this.Lt.scaling.x=Math.min(this.Lt.scaling.x,this.th.x),this.Lt.scaling.y=Math.min(this.Lt.scaling.y,this.th.y),this.Lt.scaling.z=Math.min(this.Lt.scaling.z,this.th.z))},t.prototype.Wi=function(t,i){if(this.ht){var h=!1;if(this.st.addInPlace(i),Math.abs(this.st.x)>this.nt&&(i.x>0?i.x=this.nt:i.x=-this.nt,h=!0),Math.abs(this.st.y)>this.nt&&(i.y>0?i.y=this.nt:i.y=-this.nt,h=!0),Math.abs(this.st.z)>this.nt&&(i.z>0?i.z=this.nt:i.z=-this.nt,h=!0),!h)return;Math.abs(i.x)!==this.nt&&0!==i.x&&(i.x=0),Math.abs(i.y)!==this.nt&&0!==i.y&&(i.y=0),Math.abs(i.z)!==this.nt&&0!==i.z&&(i.z=0),n.Vector3.FromFloatsToRef(0,0,0,this.st),h=!1}t.scaling.addInPlace(i)},t.prototype.St=function(t){var i=t.getWorldMatrix();n.Vector3.FromFloatArrayToRef(i.m,0,this.rt),n.Vector3.FromFloatArrayToRef(i.m,4,this.et),n.Vector3.FromFloatArrayToRef(i.m,8,this.ft)},t.prototype.Ot=function(t){if(t instanceof n.AbstractMesh){var i=t.getBoundingInfo().boundingBox,h=i.maximum.subtract(i.minimum);return 0==h.x&&(h.x=1),0==h.y&&(h.y=1),0==h.z&&(h.z=1),h}return new n.Vector3(1,1,1)},t.prototype.refreshBoundingInfo=function(){this.zt=this.Ot(this.Lt)},t.prototype.Fi=function(t,i,h,s){this.u&&null!=this.Lt.parent&&this.ti(t)?this.St(this.Et):this.St(t);var u,r=0;i==this.ii?u=this.u?this.rt:n.Axis.X:i==this.hi?u=this.u?this.et:n.Axis.Y:i==this.si&&(u=this.u?this.ft:n.Axis.Z),this.Et.position.subtractToRef(this.pt.position,this.F),this.$?(r=this.ih(s,h,this.pt.position,this.F,u),this.At.useRightHandedSystem&&(r=-r)):r=this.hh(s,h,t.getAbsolutePivotPoint(),this.F),this._&&(r=-r),this.M&&(this.lt+=r,r=0,Math.abs(this.lt)>=this.A&&(r=this.lt>0?this.A:-this.A,this.lt=0)),0!==r&&(this.F.normalize(),i==this.Zi?t.rotate(this.F,-r,n.Space.WORLD):(n.Vector3.Dot(u,this.F)>=0&&(r=-r),t.rotate(u,r,n.Space.WORLD)),this.ot&&(t.rotation=t.rotationQuaternion.toEulerAngles(),t.rotationQuaternion=null),this.u&&(this._&&(r=-r),null!=this.Lt.parent&&this.ti(t)&&(i==this.Zi?this.Et.rotate(this.F,-r,n.Space.WORLD):this.Et.rotate(u,r,n.Space.WORLD))))},t.prototype.Ei=function(){var t=this,i=this.At.getEngine(),h=i.isPointerLock?.5*this.dt.width:this.At.pointerX,s=i.isPointerLock?.5*this.dt.height:this.At.pointerY,n=this.At.pick(h,s,(function(i){return i==t.Oi}),null,this.pt);return n.hit?n.pickedPoint:null},t.prototype.Di=function(){this.Ai.visibility=0,this.ji.visibility=0,this.zi.visibility=0},t.prototype.getRotationQuaternion=function(){return this.Et.rotationQuaternion},t.prototype.getPosition=function(){return this.Et.position},t.prototype.isTranslationEnabled=function(){return this.ct},t.prototype.enableTranslation=function(){this.I||(null==this.wi&&(this.sh(),this.nh.parent=this.Et),this.Ci(),this.ct||(this.uh(this.rh,this.C),this.ct=!0,this.disableRotation(),this.disableScaling()))},t.prototype.disableTranslation=function(){this.ct&&(this.uh(this.rh,0),this.ct=!1)},t.prototype.isRotationEnabled=function(){return this.at},t.prototype.returnEuler=function(t){this.ot=t},t.prototype.enableRotation=function(){this.I||(null==this.eh&&(this.fh(),this.eh.parent=this.Et),this.Ci(),this.at||(this.uh(this.oh,this.C),this.at=!0,this.disableTranslation(),this.disableScaling()))},t.prototype.disableRotation=function(){this.at&&(this.uh(this.oh,0),this.at=!1)},t.prototype.isScalingEnabled=function(){return this.vt},t.prototype.enableScaling=function(){this.I||(null==this.bi&&(this.lh(),this.ah.parent=this.Et),this.Ci(),this.vt||(this.uh(this.vh,this.C),this.vt=!0,this.disableTranslation(),this.disableRotation()))},t.prototype.disableScaling=function(){this.vt&&(this.uh(this.vh,0),this.vt=!1)},t.prototype.setScaleBounds=function(t,i){this.$i=t||null,this.th=i||null,null!=this.$i&&(0==this.$i.x&&(this.$i.x=1e-8),0==this.$i.y&&(this.$i.y=1e-8),0==this.$i.z&&(this.$i.z=1e-8))},t.prototype.removeScaleBounds=function(){this.$i=null,this.th=null},t.prototype.setTransBounds=function(t,i){this.Ui=t||null,this.Vi=i||null},t.prototype.removeTransBounds=function(){this.Ui=null,this.Vi=null},t.prototype.setRotBounds=function(t,i){this.wh=t||null,this.Mh=i||null},t.prototype.removeRotBounds=function(){this.wh=null,this.Mh=null},t.prototype.Tt=function(){var t=new n.Mesh("",this.At);this.Ai=n.Mesh.CreateLines("",[new n.Vector3(-100,0,0),new n.Vector3(100,0,0)],this.At),this.ji=n.Mesh.CreateLines("",[new n.Vector3(0,-100,0),new n.Vector3(0,100,0)],this.At),this.zi=n.Mesh.CreateLines("",[new n.Vector3(0,0,-100),new n.Vector3(0,0,100)],this.At),this.Ai.isPickable=!1,this.ji.isPickable=!1,this.zi.isPickable=!1,this.Ai.parent=t,this.ji.parent=t,this.zi.parent=t,this.Ai.color=this.R,this.ji.color=this.T,this.zi.color=this.g,this.Di();var i=this.j*this.O*.75;return this.oi=n.Mesh.CreateLines("",[new n.Vector3(0,0,0),new n.Vector3(i,0,0)],this.At),this.li=n.Mesh.CreateLines("",[new n.Vector3(0,0,0),new n.Vector3(0,i,0)],this.At),this.ci=n.Mesh.CreateLines("",[new n.Vector3(0,0,0),new n.Vector3(0,0,i)],this.At),this.oi.isPickable=!1,this.li.isPickable=!1,this.ci.isPickable=!1,this.oi.parent=t,this.li.parent=t,this.ci.parent=t,this.oi.color=this.R,this.li.color=this.T,this.ci.color=this.g,this.oi.renderingGroupId=1,this.li.renderingGroupId=1,this.ci.renderingGroupId=1,t},t.prototype.gt=function(){this.Ht=n.Mesh.CreatePlane("",5,this.At),this.Ii=n.Mesh.CreatePlane("",5,this.At),this.Ji=n.Mesh.CreatePlane("",5,this.At),this.Ki=n.Mesh.CreatePlane("",5,this.At),this.Ht.isPickable=!1,this.Ii.isPickable=!1,this.Ji.isPickable=!1,this.Ki.isPickable=!1,this.Ht.visibility=0,this.Ii.visibility=0,this.Ji.visibility=0,this.Ki.visibility=0,this.Ht.renderingGroupId=1,this.Ii.renderingGroupId=1,this.Ji.renderingGroupId=1,this.Ki.renderingGroupId=1,this.Ht.lookAt(this.pt.position),this.Ii.rotate(n.Axis.X,1.57),this.Ji.rotate(n.Axis.Y,1.57);var t=new n.Mesh("",this.At);return this.Ht.parent=t,this.Ii.parent=t,this.Ji.parent=t,this.Ki.parent=t,t},t.prototype.sh=function(){var t=2*this.S*this.O,i=this.j*this.O;this.nh=new n.Mesh("",this.At),this.Xh(t,i,this.nh,this.At),this.Yh(t,i,this.At)},t.prototype.Xh=function(t,i,h,s){var u=this.Zh(t/2,i);u.name="X";var r=u.clone("Y"),e=u.clone("Z"),f=n.MeshBuilder.CreatePlane("XZ",{size:2*t},s),o=n.MeshBuilder.CreatePlane("ZY",{size:2*t},s),l=n.MeshBuilder.CreatePlane("YX",{size:2*t},s);f.rotation.x=1.57,o.rotation.y=-1.57,f.position.x=2*t,f.position.z=2*t,o.position.z=2*t,o.position.y=2*t,l.position.y=2*t,l.position.x=2*t,f.bakeCurrentTransformIntoVertices(),o.bakeCurrentTransformIntoVertices(),l.bakeCurrentTransformIntoVertices();var c=n.Mesh.CreateBox("ALL",2*t,s);u.parent=h,r.parent=h,e.parent=h,f.parent=h,o.parent=h,l.parent=h,c.parent=h,u.rotation.y=1.57,r.rotation.x-=1.57,this.wi=u,this.Mi=r,this.Xi=e,this.Kt=f,this.Pt=o,this.Ut=l,this.Yi=c,this.bh=[u,r,e,f,o,l,c],this.uh(this.bh,0),this.Lh(this.bh)},t.prototype.Yh=function(t,i,h){var s=i/5,u=n.Mesh.CreateCylinder("",s,0,t,6,1,h),r=u.clone(""),e=u.clone(""),f=2*t,o=n.MeshBuilder.CreatePlane("XZ",{size:f},h),l=n.MeshBuilder.CreatePlane("ZY",{size:f},h),c=n.MeshBuilder.CreatePlane("YX",{size:f},h),a=n.Mesh.CreateBox("ALL",t,h);u.rotation.x=1.57,r.rotation.x=1.57,e.rotation.x=1.57,o.rotation.x=1.57,l.rotation.y=1.57,o.position.x=f,o.position.z=f,l.position.z=f,l.position.y=f,c.position.y=f,c.position.x=f,u.parent=this.wi,r.parent=this.Mi,e.parent=this.Xi,o.parent=this.Kt,l.parent=this.Pt,c.parent=this.Ut,a.parent=this.Yi,u.position.z=i-s/2,r.position.z=i-s/2,e.position.z=i-s/2,u.material=this.ph,r.material=this.dh,e.material=this.yh,o.material=this.dh,l.material=this.ph,c.material=this.yh,a.material=this.Ah,this.jh=u,this.zh=r,this.mh=e,this.Oh=o,this.Sh=l,this.xh=c,this.Eh=a,this.rh=[u,r,e,o,l,c,a],this.Lh(this.rh),this.Rh(this.rh)},t.prototype.setRotGuideFull=function(t){this.wt=t?360:180,null!=this.eh&&(this.eh.dispose(),this.Zi.dispose(),this.eh=null,this.enableRotation())},t.prototype.fh=function(){var t=this.j*this.O*2;this.eh=new n.Mesh("",this.At),this.Th(t,this.eh),this.gh(t)},t.prototype.Th=function(t,i){var h=this.kh(t/2,this.wt),s=this.kh(t/2,this.wt),n=this.kh(t/2,this.wt),u=this.kh(t/1.75,360);h.name="X",s.name="Y",n.name="Z",u.name="ALL",h.rotation.z=1.57,n.rotation.x=-1.57,h.bakeCurrentTransformIntoVertices(),n.bakeCurrentTransformIntoVertices(),u.rotation.x=1.57,h.parent=i,s.parent=i,n.parent=i,u.parent=this.Ht,this.ii=h,this.hi=s,this.si=n,this.Zi=u,this.qh=[h,s,n,u],this.uh(this.qh,0),this.Lh(this.qh)},t.prototype.gh=function(t){var i=this.Ch(t/2,this.wt,!1),h=i.clone(""),s=i.clone(""),u=this.Ch(t/1.75,360,!1),r=this.Ch(t/2,360,!1);i.parent=this.ii,h.parent=this.hi,s.parent=this.si,i.rotation.z=1.57,s.rotation.x=-1.57,u.parent=this.Zi,r.parent=this.Zi,i.color=this.R,h.color=this.T,s.color=this.g,u.color=this.q,r.color=n.Color3.Gray(),this._h=i,this.Nh=h,this.Qh=s,this.Bh=u,this.Dh=r,this.oh=[i,h,s,u,r],this.Lh(this.oh),this.Rh(this.oh)},t.prototype.uh=function(t,i){t.map((function(t){return t.visibility=i}))},t.prototype.Lh=function(t){t.map((function(t){t.isPickable=!1}))},t.prototype.Rh=function(t){t.map((function(t){return t.renderingGroupId=2}))},t.prototype.Zh=function(t,i){var h=[new n.Vector3(t,t,0),new n.Vector3(-t,t,0),new n.Vector3(-t,-t,0),new n.Vector3(t,-t,0),new n.Vector3(t,t,0)],s=[new n.Vector3(0,0,0),new n.Vector3(0,0,i)];return n.Mesh.ExtrudeShape("",h,s,1,0,2,this.At)},t.prototype.Ch=function(t,i,h){null===i&&(i=360);for(var s,u,r=[],e=3.14/180,f=0,o=0;o<=i;o+=5)s=t*Math.cos(o*e),u=90==o?t:270==o?-t:t*Math.sin(o*e),r[f]=new n.Vector3(s,0,u),f++;if(h){t-=.04;for(o=0;o<=i;o+=5)s=t*Math.cos(o*e),u=90==o?t:270==o?-t:t*Math.sin(o*e),r[f]=new n.Vector3(s,0,u),f++}return n.Mesh.CreateLines("",r,this.At)},t.prototype.kh=function(t,i){null===i&&(i=360);for(var h,s,u=[],r=3.14/180,e=0,f=0;f<=i;f+=30)h=t*Math.cos(f*r),s=90==f?t:270==f?-t:t*Math.sin(f*r),u[e]=new n.Vector3(h,0,s),e++;return n.Mesh.CreateTube("",u,this.S*this.O*2,3,null,n.Mesh.NO_CAP,this.At)},t.prototype.lh=function(){var t=2*this.S*this.O,i=this.j*this.O;this.ah=new n.Mesh("",this.At),this.Fh(t,i,this.ah),this.Gh(t,i)},t.prototype.Fh=function(t,i,h){var s=this.Zh(t/2,i);s.name="X";var u=s.clone("Y"),r=s.clone("Z"),e=n.MeshBuilder.CreatePlane("XZ",{size:2*t},this.At),f=n.MeshBuilder.CreatePlane("ZY",{size:2*t},this.At),o=n.MeshBuilder.CreatePlane("YX",{size:2*t},this.At);e.rotation.x=1.57,f.rotation.y=-1.57,e.position.x=2*t,e.position.z=2*t,f.position.z=2*t,f.position.y=2*t,o.position.y=2*t,o.position.x=2*t,e.bakeCurrentTransformIntoVertices(),f.bakeCurrentTransformIntoVertices(),o.bakeCurrentTransformIntoVertices();var l=n.Mesh.CreateBox("ALL",2*t,this.At);s.parent=h,u.parent=h,r.parent=h,l.parent=h,e.parent=h,f.parent=h,o.parent=h,s.rotation.y=1.57,u.rotation.x-=1.57,this.bi=s,this.Li=u,this.pi=r,this.Vt=e,this.Wt=f,this.$t=o,this.di=l,this.Hh=[s,u,r,e,f,o,l],this.uh(this.Hh,0),this.Lh(this.Hh)},t.prototype.Gh=function(t,i){var h=n.Mesh.CreateBox("",t,this.At),s=h.clone(""),u=h.clone(""),r=2*t,e=n.MeshBuilder.CreatePlane("XZ",{size:r},this.At),f=n.MeshBuilder.CreatePlane("ZY",{size:r},this.At),o=n.MeshBuilder.CreatePlane("YX",{size:r},this.At),l=n.Mesh.CreateBox("ALL",t,this.At);e.rotation.x=1.57,f.rotation.y=-1.57,e.position.x=r,e.position.z=r,f.position.z=r,f.position.y=r,o.position.y=r,o.position.x=r,h.parent=this.bi,s.parent=this.Li,u.parent=this.pi,e.parent=this.Vt,f.parent=this.Wt,o.parent=this.$t,l.parent=this.di,h.position.z=i-t/2,s.position.z=i-t/2,u.position.z=i-t/2,h.material=this.ph,s.material=this.dh,u.material=this.yh,e.material=this.dh,f.material=this.ph,o.material=this.yh,l.material=this.Ah,this.Ih=h,this.Jh=s,this.Kh=u,this.Ph=e,this.Uh=f,this.Vh=o,this.Wh=l,this.vh=[h,s,u,e,f,o,l],this.Lh(this.vh),this.Rh(this.vh)},t.prototype.setVisibility=function(t){this.C=t},t.prototype.setLocal=function(t){this.u!=t&&(this.u=t,t||(this.Et.rotationQuaternion=n.Quaternion.Identity()))},t.prototype.isLocal=function(){return this.u},t.prototype.setTransSnap=function(t){this.v=t},t.prototype.isTransSnap=function(){return this.v},t.prototype.setRotSnap=function(t){this.M=t},t.prototype.isRotSnap=function(){return this.M},t.prototype.setScaleSnap=function(t){this.ht=t},t.prototype.isScaleSnap=function(){return this.ht},t.prototype.setTransSnapValue=function(t){this.Mt.copyFromFloats(t,t,t),this.L=t},t.prototype.getTransSnapValue=function(){return this.L},t.prototype.setRotSnapValue=function(t){this.A=t},t.prototype.getRotSnapValue=function(){return this.A},t.prototype.setScaleSnapValue=function(t){this.nt=t},t.prototype.getScaleSnapValue=function(){return this.nt},t.prototype.ih=function(t,i,h,s,u){var r=n.Vector3.Dot(s,u);u.scaleToRef(r,this.Xt),h.addToRef(this.Xt,this.Yt);var e=this.Yt;this.pt.getWorldMatrix().invertToRef(this.bt),n.Vector3.TransformCoordinatesToRef(this.Yt,this.bt,this.Yt);var f=0;e.x>=0&&e.y>=0?f=1:e.x<=0&&e.y>=0?f=2:e.x<=0&&e.y<=0?f=3:e.x>=0&&e.y<=0&&(f=4),n.Vector3.TransformCoordinatesToRef(t,this.bt,this.Xt),n.Vector3.TransformCoordinatesToRef(i,this.bt,this.Yt),this.Yt.subtractInPlace(this.Xt);var o=this.Yt,l=o.length(),c="";o.x>=0&&o.y>=0?c=o.x>=o.y?"r":"u":o.x<=0&&o.y>=0?c=-o.x>=o.y?"l":"u":o.x<=0&&o.y<=0?c=-o.x>=-o.y?"l":"d":o.x>=0&&o.y<=0&&(c=o.x>=-o.y?"r":"d");var a=0;return"d"==c?a=1==f||4==f?1:-1:"u"==c?a=1==f||4==f?-1:1:"r"==c?a=2==f||1==f?1:-1:"l"==c&&(a=2==f||1==f?-1:1),a*l},t.prototype.hh=function(t,i,h,s){t.subtractToRef(h,this.Xt),i.subtractToRef(h,this.Yt),n.Vector3.CrossToRef(this.Xt,this.Yt,this.Zt);var u=Math.asin(this.Zt.length()/(this.Xt.length()*this.Yt.length()));return n.Vector3.Dot(this.Zt,s)>0&&(u*=-1),u},t.$h=function(t,i){var h=new n.StandardMaterial("",i);return h.emissiveColor=t,h.diffuseColor=n.Color3.Black(),h.specularColor=n.Color3.Black(),h.backFaceCulling=!1,h},t.prototype.Rt=function(i){this.ph=t.$h(this.R,i),this.dh=t.$h(this.T,i),this.yh=t.$h(this.g,i),this.Qi=t.$h(this.k,i),this.Ah=t.$h(this.q,i)},t.prototype.vi=function(){this.ph.dispose(),this.dh.dispose(),this.yh.dispose(),this.Qi.dispose(),this.Ah.dispose()},t}(),r=function(){function t(t,i){this.lastMax=10,this.acts=new Array,this.last=-1,this.current=-1,this.mesh=t,this.lastMax=i-1,this.add()}return t.prototype.setCapacity=function(t){0!=t?(this.lastMax=t-1,this.last=-1,this.current=-1,this.acts=new Array,this.add()):console.error("capacity should be more than zero")},t.prototype.add=function(t){void 0===t&&(t=null);var i=new e(this.mesh,t);this.current<this.last&&(this.acts.splice(this.current+1),this.last=this.current),this.last==this.lastMax?(this.acts.shift(),this.acts.push(i)):(this.acts.push(i),this.last++,this.current++)},t.prototype.undo=function(){if(this.current>0){var t=this.acts[this.current].getActionType();return this.current--,this.acts[this.current].perform(this.mesh),t}},t.prototype.redo=function(){if(this.current<this.last)return this.current++,this.acts[this.current].perform(this.mesh),this.acts[this.current].getActionType()},t}(),e=function(){function t(t,i){this.ts=t.position.clone(),null==t.rotationQuaternion?(this.hs=null,this.ss=t.rotation.clone()):(this.hs=t.rotationQuaternion.clone(),this.ss=null),this.ns=t.scaling.clone(),this.us=i}return t.prototype.getActionType=function(){return this.us},t.prototype.perform=function(t){t.position.copyFrom(this.ts),null==t.rotationQuaternion?null!=this.ss?t.rotation.copyFrom(this.ss):t.rotation.copyFrom(this.hs.toEulerAngles()):null!=this.hs?t.rotationQuaternion.copyFrom(this.hs):t.rotationQuaternion.copyFrom(n.Quaternion.RotationYawPitchRoll(this.ss.y,this.ss.x,this.ss.z)),t.scaling.copyFrom(this.ns)},t}()}])}));
1
+ !function(t,i){if("object"==typeof exports&&"object"==typeof module)module.exports=i(require("babylonjs"));else if("function"==typeof define&&define.amd)define(["babylonjs"],i);else{var s="object"==typeof exports?i(require("babylonjs")):i(t.BABYLON);for(var h in s)("object"==typeof exports?exports:t)[h]=s[h]}}(self,t=>(()=>{"use strict";var i={43(i){i.exports=t}},s={};function h(t){var e=s[t];if(void 0!==e)return e.exports;var n=s[t]={exports:{}};return i[t](n,n.exports,h),n.exports}var e={};return(()=>{var t=e;Object.defineProperty(t,"t",{value:!0}),t.EditControl=void 0;const i=h(43);var s;!function(t){t[t.TRANS=0]="TRANS",t[t.ROT=1]="ROT",t[t.SCALE=2]="SCALE"}(s||(s={}));class n{i(t){return null==t.rotationQuaternion||null==t.rotationQuaternion}constructor(t,s,h,e,n){this.h=!0,this.l=!1,this.o=!1,this.u=1,this.M=Math.PI/18,this._=.4,this.p=1,this.S=.02,this.A=new i.Color3(1,.34,.26),this.L=new i.Color3(0,.8,.16),this.v=new i.Color3(.21,.5,1),this.R=new i.Color3(.7,.7,.7),this.P=new i.Color3(1,1,0),this.T=.75,this.k=!1,this.C=new i.Matrix,this.B=new i.Vector3(0,0,0),this.j=2,this.V=new i.Vector3(0,0,0),this.O=new i.Vector3(0,0,0),this.G="",this.N=!1,this.q=null,this.H=null,this.U=null,this.D=!1,this.F=!1,this.W=!1,this.I=!1,this.J=new i.Vector3(0,0,0),this.K=new i.Vector3(0,0,0),this.$=!1,this.tt=new i.Vector3(0,0,0),this.it=.25,this.st=new i.Vector3(0,0,0),this.ht=new i.Vector3(0,0,0),this.et=new i.Vector3(0,0,0),this.nt=new i.Vector3(0,0,0),this.lt=0,this.rt=!1,this.ot=!1,this.ut=!1,this.ct=180,this.ft=new i.Vector3(this.u,this.u,this.u),this.dt=new i.Vector3(0,0,0),this.wt=new i.Vector3(0,0,0),this.Mt=new i.Vector3(0,0,0),this._t=new i.Matrix,this.St=t,this.At=s,this.Lt=h,null!=e&&(this.p=e),null!=n&&(this.S=n),this.bt=i.UtilityLayerRenderer.DefaultUtilityLayer,this.bt.onlyCheckPointerDownEvents=!1,this.Xt=this.bt.utilityLayerScene,this.Yt=new l(t,10),t.computeWorldMatrix(!0),this.Zt=this.vt(t),this.gt(t),this.k=this.Rt(t),this.k&&console.warn("we have lhs rhs issue "+this.k),this.Pt=new i.Mesh("",this.Xt),this.Pt.rotationQuaternion=i.Quaternion.Identity(),this.Pt.visibility=0,this.Pt.isPickable=!1,this.zt(this.Xt),this.Tt().parent=this.Pt,this.yt().parent=this.Pt,this.xt=t=>this.kt(t),this.Et=t=>this.Ct(t),this.Bt=t=>this.jt(t),h.addEventListener("pointerdown",this.xt,!1),h.addEventListener("pointerup",this.Et,!1),h.addEventListener("pointermove",this.Bt,!1),this.Vt=()=>this.Ot(),this.Xt.registerBeforeRender(this.Vt)}getRoot(){return this.Pt}Rt(t){let s=!1,h=t.parent;if(null==h)return!1;this.gt(h);let e=i.Vector3.Cross(this.ht,this.et);return s=i.Vector3.Dot(e,this.nt)<0,this.gt(t),s}Ot(){this.Pt.position=this.St.getAbsolutePivotPoint(),this.Gt(),this.Nt(),this.h?(this.Pt.getWorldMatrix().invertToRef(this.C),i.Vector3.TransformCoordinatesToRef(this.At.position,this.C,this.B),this.qt.lookAt(this.B,0,0,0,i.Space.LOCAL)):(this.At.position.subtractToRef(this.Pt.position,this.B),this.qt.lookAt(this.At.position,0,0,0,i.Space.WORLD)),this.ot?this.Ht():this.rt?this.Ut(this.Dt,this.Ft,this.Wt):this.ut&&this.Ut(this.It,this.Qt,this.Jt)}Gt(){if(this.h)if(null==this.St.parent)if(this.i(this.St)){let t=this.St.rotation;i.Quaternion.RotationYawPitchRollToRef(t.y,t.x,t.z,this.Pt.rotationQuaternion)}else this.Pt.rotationQuaternion.copyFrom(this.St.rotationQuaternion);else{if(this.Kt(this.St))return;this.St.getWorldMatrix().getRotationMatrixToRef(this._t),i.Quaternion.FromRotationMatrixToRef(this._t,this.Pt.rotationQuaternion)}}Kt(t){if(null==t.parent)return!1;for(;null!=t.parent;){if(t.parent.scaling.x!=t.parent.scaling.y||t.parent.scaling.y!=t.parent.scaling.z)return!0;t=t.parent}return!1}Nt(){this.Pt.position.subtractToRef(this.At.position,this.V),i.Vector3.FromArrayToRef(this.At.getWorldMatrix().asArray(),8,this.O);let t=i.Vector3.Dot(this.V,this.O)/this.O.length(),s=Math.abs(t/this.j);i.Vector3.FromFloatsToRef(s,s,s,this.Pt.scaling)}Ht(){let t=Math.atan(this.B.y/this.B.z);this.B.z>=0?this.$t.rotation.x=-t:this.$t.rotation.x=-t-Math.PI;let i=Math.atan(this.B.x/this.B.z);this.B.z>=0?this.ti.rotation.y=i:this.ti.rotation.y=i+Math.PI;let s=Math.atan(this.B.x/this.B.y);this.B.y>=0?this.ii.rotation.z=-s:this.ii.rotation.z=-s-Math.PI}Ut(t,i,s){let h=this.B;t.rotation.x=0,t.rotation.y=0,t.rotation.z=0,i.rotation.x=0,i.rotation.y=0,i.rotation.z=0,s.rotation.x=0,s.rotation.y=0,s.rotation.z=0,h.x<=0&&h.y>=0&&h.z>=0?(t.rotation.z=3.14,s.rotation.y=3.14):h.x<=0&&h.y>=0&&h.z<=0?(t.rotation.y=3.14,i.rotation.y=3.14,s.rotation.y=3.14):h.x>=0&&h.y>=0&&h.z<=0?(t.rotation.x=3.14,i.rotation.y=3.14):h.x>=0&&h.y<=0&&h.z>=0?(i.rotation.z=3.14,s.rotation.x=3.14):h.x<=0&&h.y<=0&&h.z>=0?(t.rotation.z=3.14,i.rotation.z=3.14,s.rotation.z=3.14):h.x<=0&&h.y<=0&&h.z<=0?(t.rotation.y=3.14,i.rotation.x=3.14,s.rotation.z=3.14):h.x>=0&&h.y<=0&&h.z<=0&&(t.rotation.x=3.14,i.rotation.x=3.14,s.rotation.x=3.14)}switchTo(t){t.computeWorldMatrix(!0),this.St=t,this.gt(t),this.Yt=new l(t,10),this.k=this.Rt(t),this.refreshBoundingInfo()}switchCamera(t){this.At=t}setUndoCount(t){this.Yt.setCapacity(t)}undo(){let t=this.Yt.undo();this.St.computeWorldMatrix(!0),this.gt(this.St),this.si(t),this.hi(t),this.ei(t)}redo(){let t=this.Yt.redo();this.St.computeWorldMatrix(!0),this.gt(this.St),this.si(t),this.hi(t),this.ei(t)}detach(){this.Lt.removeEventListener("pointerdown",this.xt,!1),this.Lt.removeEventListener("pointerup",this.Et,!1),this.Lt.removeEventListener("pointermove",this.Bt,!1),this.Xt.unregisterBeforeRender(this.Vt),this.removeAllActionListeners(),this.ni()}hide(){this.N=!0,this.rt?(this.G="T",this.disableTranslation()):this.ot?(this.G="R",this.disableRotation()):this.ut&&(this.G="S",this.disableScaling()),this.li()}li(){this.ri.visibility=0,this.ai.visibility=0,this.oi.visibility=0}ui(){this.ri.visibility=this.T,this.ai.visibility=this.T,this.oi.visibility=this.T}show(){this.N=!1,this.ui(),"T"==this.G?this.enableTranslation():"R"==this.G?this.enableRotation():"S"==this.G&&this.enableScaling()}isHidden(){return this.N}ni(){this.Pt.dispose(),this.ci(),this.Yt=null}addActionListener(t){this.q=t}removeActionListener(){this.q=null}addActionStartListener(t){this.H=t}removeActionStartListener(){this.H=null}addActionEndListener(t){this.U=t}removeActionEndListener(){this.U=null}removeAllActionListeners(){this.q=null,this.H=null,this.U=null}kt(t){if(t.preventDefault(),this.D=!0,0!=t.button)return;let i=this.Xt.getEngine(),s=i.isPointerLock?.5*this.Lt.width:this.Xt.pointerX,h=i.isPointerLock?.5*this.Lt.height:this.Xt.pointerY,e=this.Xt.pick(s,h,t=>{if(this.rt){if(t==this.fi||t==this.di||t==this.wi||t==this.Dt||t==this.Ft||t==this.Wt||t==this.Mi)return!0}else if(this.ot){if(t==this.$t||t==this.ti||t==this.ii||t==this._i)return!0}else if(this.ut&&(t==this.pi||t==this.Si||t==this.Ai||t==this.It||t==this.Qt||t==this.Jt||t==this.Li))return!0;return!1},!1,this.At);if(e.hit){this.bi=e.pickedMesh;let t=this.bi.getChildren();t.length>0?t[0].visibility=this.T:this.bi.visibility=this.T;let i=this.bi.name;"X"==i?this.Xi.visibility=1:"Y"==i?this.Yi.visibility=1:"Z"==i?this.Zi.visibility=1:"XZ"==i?(this.Xi.visibility=1,this.Zi.visibility=1):"ZY"==i?(this.Zi.visibility=1,this.Yi.visibility=1):"YX"==i?(this.Yi.visibility=1,this.Xi.visibility=1):"ALL"==i&&(this.Xi.visibility=1,this.Yi.visibility=1,this.Zi.visibility=1),this.gi(!0),this.mi=this.Ri(this.bi),null!=this.mi?this.Pi=this.zi():this.Pi=null,window.setTimeout((t,i)=>this.Ti(t,i),0,this.At,this.Lt)}}gi(t){this.W=t,t?(this.yi(),this.xi==s.ROT&&(this.lt=0),this.si(this.xi)):this.ei(this.xi)}isEditing(){return this.W}Ti(t,i){let s=t,h=i;this.Xt.getEngine().isPointerLock||s.detachControl(h)}isPointerOver(){return this.F}ki(){let t=this.Xt.getEngine(),i=t.isPointerLock?.5*this.Lt.width:this.Xt.pointerX,s=t.isPointerLock?.5*this.Lt.height:this.Xt.pointerY,h=this.Xt.pick(i,s,t=>{if(this.rt){if(t==this.fi||t==this.di||t==this.wi||t==this.Dt||t==this.Ft||t==this.Wt||t==this.Mi)return!0}else if(this.ot){if(t==this.$t||t==this.ti||t==this.ii||t==this._i)return!0}else if(this.ut&&(t==this.pi||t==this.Si||t==this.Ai||t==this.It||t==this.Qt||t==this.Jt||t==this.Li))return!0;return!1},!1,this.At);if(h.hit){if(h.pickedMesh!=this.Ei){if(this.F=!0,this.Ci(),this.Ei=h.pickedMesh,this.ot)this.Bi=this.Ei.getChildren()[0].color,this.Ei.getChildren()[0].color=this.P;else{let t=this.Ei.getChildren();t.length>0?(this.ji=t[0].material,t[0].material=this.Vi):(this.ji=this.Ei.material,this.Ei.material=this.Vi)}"X"==this.Ei.name?this.ri.color=this.P:"Y"==this.Ei.name?this.ai.color=this.P:"Z"==this.Ei.name&&(this.oi.color=this.P)}}else this.F=!1,null!=this.Ei&&(this.Oi(this.Ei),this.Ei=null)}Ci(){null!=this.Ei&&(this.Ei.visibility=0,this.Oi(this.Ei))}Oi(t){switch(t.name){case"X":this.ri.color=this.A;break;case"Y":this.ai.color=this.L;break;case"Z":this.oi.color=this.v}if(this.ot)t.getChildren()[0].color=this.Bi;else{let i=t.getChildren();i.length>0?i[0].material=this.ji:t.material=this.ji}}Ct(t){if(this.D=!1,this.W){this.Xt.getEngine().isPointerLock||this.At.attachControl(!0),this.gi(!1),this.Gi(),null!=this.Ei&&(this.Oi(this.Ei),this.Ei=null),this.Yt.add(this.xi)}}yi(){this.rt?this.xi=s.TRANS:this.ot?this.xi=s.ROT:this.ut&&(this.xi=s.SCALE)}hi(t){null!=this.q&&this.q(t)}si(t){null!=this.H&&this.H(t)}ei(t){null!=this.U&&this.U(t)}jt(t){if(!this.D)return void this.ki();if(!this.W)return;if(null==this.Pi)return;let i=this.zi();if(null!=i){if(this.ot)this.Ni(this.St,this.bi,i,this.Pi);else{let t=i.subtract(this.Pi);if(0==t.x&&0==t.y&&0==t.z)return;this.rt?this.qi(t):this.ut&&this.h&&this.Hi(t)}this.Pi=i,this.hi(this.xi)}}Ri(t){let s=t.name;if(this.rt||this.ut){if("XZ"==s)return this.Ui;if("ZY"==s)return this.Di;if("YX"==s)return this.Fi;if("ALL"==s)return this.qt;{this.Pt.getWorldMatrix().invertToRef(this.C),i.Vector3.TransformCoordinatesToRef(this.At.position,this.C,this.B);let t=this.B;if("X"===s)return Math.abs(t.y)>Math.abs(t.z)?this.Ui:this.Fi;if("Z"===s)return Math.abs(t.y)>Math.abs(t.x)?this.Ui:this.Di;if("Y"===s)return Math.abs(t.z)>Math.abs(t.x)?this.Fi:this.Di}}else{if(!this.ot)return null;{this.I=!1,this.Pt.getWorldMatrix().invertToRef(this.C),i.Vector3.TransformCoordinatesToRef(this.At.position,this.C,this.B);let t=this.B;switch(s){case"X":return Math.abs(t.x)<.2?(this.I=!0,this.qt):this.Di;case"Y":return Math.abs(t.y)<.2?(this.I=!0,this.qt):this.Ui;case"Z":return Math.abs(t.z)<.2?(this.I=!0,this.qt):this.Fi;default:return this.qt}}}}qi(t){null!=this.St.parent&&this.Kt(this.St)?this.gt(this.Pt):this.gt(this.St);let s=this.bi.name;this.J.x=0,this.J.y=0,this.J.z=0,"X"!=s&&"XZ"!=s&&"YX"!=s&&"ALL"!=s||(this.h?this.J.x=i.Vector3.Dot(t,this.ht)/this.ht.length():this.J.x=t.x),"Y"!=s&&"ZY"!=s&&"YX"!=s&&"ALL"!=s||(this.h?this.J.y=i.Vector3.Dot(t,this.et)/this.et.length():this.J.y=t.y),"Z"!=s&&"XZ"!=s&&"ZY"!=s&&"ALL"!=s||(this.h?this.J.z=i.Vector3.Dot(t,this.nt)/this.nt.length():this.J.z=t.z),this.Wi(this.St,this.J,this.h),this.Ii&&(this.St.position.x=Math.max(this.St.position.x,this.Ii.x),this.St.position.y=Math.max(this.St.position.y,this.Ii.y),this.St.position.z=Math.max(this.St.position.z,this.Ii.z)),this.Qi&&(this.St.position.x=Math.min(this.St.position.x,this.Qi.x),this.St.position.y=Math.min(this.St.position.y,this.Qi.y),this.St.position.z=Math.min(this.St.position.z,this.Qi.z)),this.St.computeWorldMatrix(!0)}Wi(t,s,h){if(this.l){let t=!1;if(this.K.addInPlace(s),Math.abs(this.K.x)>this.ft.x&&(this.K.x>0?s.x=this.ft.x:s.x=-this.ft.x,t=!0),Math.abs(this.K.y)>this.ft.y&&(this.K.y>0?s.y=this.ft.y:s.y=-this.ft.y,t=!0),Math.abs(this.K.z)>this.ft.z&&(this.K.z>0?s.z=this.ft.z:s.z=-this.ft.z,t=!0),!t)return;Math.abs(s.x)!==this.ft.x&&(s.x=0),Math.abs(s.y)!==this.ft.y&&(s.y=0),Math.abs(s.z)!==this.ft.z&&(s.z=0),i.Vector3.FromFloatsToRef(0,0,0,this.K),t=!1}h?(this.ht.normalizeToRef(this.dt),this.et.normalizeToRef(this.wt),this.nt.normalizeToRef(this.Mt),this.St.translate(this.dt,s.x,i.Space.WORLD),this.St.translate(this.wt,s.y,i.Space.WORLD),this.St.translate(this.Mt,s.z,i.Space.WORLD)):null==this.St.parent?this.St.position.addInPlace(s):this.St.setAbsolutePosition(s.addInPlace(this.St.absolutePosition))}Hi(t){this.gt(this.St),this.st.x=0,this.st.y=0,this.st.z=0;let s=this.bi.name;"X"!=s&&"XZ"!=s&&"YX"!=s||(this.st.x=i.Vector3.Dot(t,this.ht)/this.ht.length(),this.St.scaling.x<0&&(this.st.x=-this.st.x)),"Y"!=s&&"ZY"!=s&&"YX"!=s||(this.st.y=i.Vector3.Dot(t,this.et)/this.et.length(),this.St.scaling.y<0&&(this.st.y=-this.st.y)),"Z"!=s&&"XZ"!=s&&"ZY"!=s||(this.st.z=i.Vector3.Dot(t,this.nt)/this.nt.length(),this.St.scaling.z<0&&(this.st.z=-this.st.z));let h=this.Zt;if(this.st.x=this.st.x/h.x,this.st.y=this.st.y/h.y,this.st.z=this.st.z/h.z,"ALL"==s){let s=i.Vector3.Dot(t,this.At.upVector);s/=Math.max(h.x,h.y,h.z),this.st.copyFromFloats(s,s,s)}else{let h=!1;if("XZ"==s?(h=!0,Math.abs(this.st.x)>Math.abs(this.st.z)?this.st.z=this.st.x:this.st.x=this.st.z):"ZY"==s?(h=!0,Math.abs(this.st.z)>Math.abs(this.st.y)?this.st.y=this.st.z:this.st.z=this.st.y):"YX"==s&&(h=!0,Math.abs(this.st.y)>Math.abs(this.st.x)?this.st.x=this.st.y:this.st.y=this.st.x),h){this.Pt.position.subtractToRef(this.At.position,this.V);let s=i.Vector3.Dot(t,this.V);this.st.x=Math.abs(this.st.x),this.st.y=Math.abs(this.st.y),this.st.z=Math.abs(this.st.z),s>0?(this.St.scaling.x>0&&(this.st.x=-this.st.x),this.St.scaling.y>0&&(this.st.y=-this.st.y),this.St.scaling.z>0&&(this.st.z=-this.st.z)):(this.St.scaling.x<0&&(this.st.x=-this.st.x),this.St.scaling.y<0&&(this.st.y=-this.st.y),this.St.scaling.z<0&&(this.st.z=-this.st.z))}}this.Ji(this.St,this.st),this.Ki&&(this.St.scaling.x=Math.max(this.St.scaling.x,this.Ki.x),this.St.scaling.y=Math.max(this.St.scaling.y,this.Ki.y),this.St.scaling.z=Math.max(this.St.scaling.z,this.Ki.z)),this.$i&&(this.St.scaling.x=Math.min(this.St.scaling.x,this.$i.x),this.St.scaling.y=Math.min(this.St.scaling.y,this.$i.y),this.St.scaling.z=Math.min(this.St.scaling.z,this.$i.z))}Ji(t,s){if(this.$){let t=!1;if(this.tt.addInPlace(s),Math.abs(this.tt.x)>this.it&&(s.x>0?s.x=this.it:s.x=-this.it,t=!0),Math.abs(this.tt.y)>this.it&&(s.y>0?s.y=this.it:s.y=-this.it,t=!0),Math.abs(this.tt.z)>this.it&&(s.z>0?s.z=this.it:s.z=-this.it,t=!0),!t)return;Math.abs(s.x)!==this.it&&0!==s.x&&(s.x=0),Math.abs(s.y)!==this.it&&0!==s.y&&(s.y=0),Math.abs(s.z)!==this.it&&0!==s.z&&(s.z=0),i.Vector3.FromFloatsToRef(0,0,0,this.tt),t=!1}t.scaling.addInPlace(s)}gt(t){let s=t.getWorldMatrix();i.Vector3.FromArrayToRef(s.m,0,this.ht),i.Vector3.FromArrayToRef(s.m,4,this.et),i.Vector3.FromArrayToRef(s.m,8,this.nt)}vt(t){if(t instanceof i.AbstractMesh){let i=t.getBoundingInfo().boundingBox,s=i.maximum.subtract(i.minimum);return 0==s.x&&(s.x=1),0==s.y&&(s.y=1),0==s.z&&(s.z=1),s}return new i.Vector3(1,1,1)}refreshBoundingInfo(){this.Zt=this.vt(this.St)}Ni(t,s,h,e){this.h&&null!=this.St.parent&&this.Kt(t)?this.gt(this.Pt):this.gt(t);let n,l=0;s==this.$t?n=this.h?this.ht:i.Axis.X:s==this.ti?n=this.h?this.et:i.Axis.Y:s==this.ii&&(n=this.h?this.nt:i.Axis.Z),this.Pt.position.subtractToRef(this.At.position,this.V),this.I?(l=this.ts(e,h,this.At.position,this.V,n),this.Xt.useRightHandedSystem&&(l=-l)):l=this.ss(e,h,t.getAbsolutePivotPoint(),this.V),this.k&&(l=-l),this.o&&(this.lt+=l,l=0,Math.abs(this.lt)>=this.M&&(l=this.lt>0?this.M:-this.M,this.lt=0)),0!==l&&(this.V.normalize(),s==this._i?t.rotate(this.V,-l,i.Space.WORLD):(i.Vector3.Dot(n,this.V)>=0&&(l=-l),t.rotate(n,l,i.Space.WORLD)),this.h&&(this.k&&(l=-l),null!=this.St.parent&&this.Kt(t)&&(s==this._i?this.Pt.rotate(this.V,-l,i.Space.WORLD):this.Pt.rotate(n,l,i.Space.WORLD))))}zi(){let t=this.Xt.getEngine(),i=t.isPointerLock?.5*this.Lt.width:this.Xt.pointerX,s=t.isPointerLock?.5*this.Lt.height:this.Xt.pointerY,h=this.Xt.pick(i,s,t=>t==this.mi,null,this.At);return h.hit?h.pickedPoint:null}Gi(){this.Xi.visibility=0,this.Yi.visibility=0,this.Zi.visibility=0}getRotationQuaternion(){return this.Pt.rotationQuaternion}getPosition(){return this.Pt.position}isTranslationEnabled(){return this.rt}enableTranslation(){this.N||(null==this.fi&&(this.hs(),this.es.parent=this.Pt),this.Ci(),this.rt||(this.ns(this.ls,this.T),this.rt=!0,this.disableRotation(),this.disableScaling()))}disableTranslation(){this.rt&&(this.ns(this.ls,0),this.rt=!1)}isRotationEnabled(){return this.ot}enableRotation(){this.N||(null==this.rs&&(this.us(),this.rs.parent=this.Pt),this.Ci(),this.ot||(this.ns(this.cs,this.T),this.ot=!0,this.disableTranslation(),this.disableScaling()))}disableRotation(){this.ot&&(this.ns(this.cs,0),this.ot=!1)}isScalingEnabled(){return this.ut}enableScaling(){this.N||(null==this.pi&&(this.fs(),this.ds.parent=this.Pt),this.Ci(),this.ut||(this.ns(this.ws,this.T),this.ut=!0,this.disableTranslation(),this.disableRotation()))}disableScaling(){this.ut&&(this.ns(this.ws,0),this.ut=!1)}setScaleBounds(t,i){this.Ki=t||null,this.$i=i||null,null!=this.Ki&&(0==this.Ki.x&&(this.Ki.x=1e-8),0==this.Ki.y&&(this.Ki.y=1e-8),0==this.Ki.z&&(this.Ki.z=1e-8))}removeScaleBounds(){this.Ki=null,this.$i=null}setTransBounds(t,i){this.Ii=t||null,this.Qi=i||null}removeTransBounds(){this.Ii=null,this.Qi=null}setRotBounds(t,i){this.Ms=t||null,this._s=i||null}removeRotBounds(){this.Ms=null,this._s=null}Tt(){let t=new i.Mesh("",this.Xt);this.Xi=i.MeshBuilder.CreateLines("",{points:[new i.Vector3(-100,0,0),new i.Vector3(100,0,0)]},this.Xt),this.Yi=i.MeshBuilder.CreateLines("",{points:[new i.Vector3(0,-100,0),new i.Vector3(0,100,0)]},this.Xt),this.Zi=i.MeshBuilder.CreateLines("",{points:[new i.Vector3(0,0,-100),new i.Vector3(0,0,100)]},this.Xt),this.Xi.isPickable=!1,this.Yi.isPickable=!1,this.Zi.isPickable=!1,this.Xi.parent=t,this.Yi.parent=t,this.Zi.parent=t,this.Xi.color=this.A,this.Yi.color=this.L,this.Zi.color=this.v,this.Gi();let s=this._*this.p*.75;return this.ri=i.MeshBuilder.CreateLines("",{points:[new i.Vector3(0,0,0),new i.Vector3(s,0,0)]},this.Xt),this.ai=i.MeshBuilder.CreateLines("",{points:[new i.Vector3(0,0,0),new i.Vector3(0,s,0)]},this.Xt),this.oi=i.MeshBuilder.CreateLines("",{points:[new i.Vector3(0,0,0),new i.Vector3(0,0,s)]},this.Xt),this.ri.isPickable=!1,this.ai.isPickable=!1,this.oi.isPickable=!1,this.ri.parent=t,this.ai.parent=t,this.oi.parent=t,this.ri.color=this.A,this.ai.color=this.L,this.oi.color=this.v,this.ri.renderingGroupId=1,this.ai.renderingGroupId=1,this.oi.renderingGroupId=1,t}yt(){this.qt=i.MeshBuilder.CreatePlane("",{size:5},this.Xt),this.Ui=i.MeshBuilder.CreatePlane("",{size:5},this.Xt),this.Di=i.MeshBuilder.CreatePlane("",{size:5},this.Xt),this.Fi=i.MeshBuilder.CreatePlane("",{size:5},this.Xt),this.qt.isPickable=!1,this.Ui.isPickable=!1,this.Di.isPickable=!1,this.Fi.isPickable=!1,this.qt.visibility=0,this.Ui.visibility=0,this.Di.visibility=0,this.Fi.visibility=0,this.qt.renderingGroupId=1,this.Ui.renderingGroupId=1,this.Di.renderingGroupId=1,this.Fi.renderingGroupId=1,this.qt.lookAt(this.At.position),this.Ui.rotate(i.Axis.X,1.57),this.Di.rotate(i.Axis.Y,1.57);let t=new i.Mesh("",this.Xt);return this.qt.parent=t,this.Ui.parent=t,this.Di.parent=t,this.Fi.parent=t,t}hs(){let t=2*this.S*this.p,s=this._*this.p;this.es=new i.Mesh("",this.Xt),this.ps(t,s,this.es,this.Xt),this.Ss(t,s,this.Xt)}ps(t,s,h,e){let n=this.As(t/2,s);n.name="X";let l=n.clone("Y"),r=n.clone("Z"),a=2*t,o=i.MeshBuilder.CreatePlane("XZ",{size:a},e),u=i.MeshBuilder.CreatePlane("ZY",{size:a},e),c=i.MeshBuilder.CreatePlane("YX",{size:a},e);o.rotation.x=1.57,u.rotation.y=-1.57,o.position.x=2*t,o.position.z=2*t,u.position.z=2*t,u.position.y=2*t,c.position.y=2*t,c.position.x=2*t,o.bakeCurrentTransformIntoVertices(),u.bakeCurrentTransformIntoVertices(),c.bakeCurrentTransformIntoVertices();let f=i.MeshBuilder.CreateBox("ALL",{size:2*t},e);n.parent=h,l.parent=h,r.parent=h,o.parent=h,u.parent=h,c.parent=h,f.parent=h,n.rotation.y=1.57,l.rotation.x-=1.57,this.fi=n,this.di=l,this.wi=r,this.Dt=o,this.Ft=u,this.Wt=c,this.Mi=f,this.Ls=[n,l,r,o,u,c,f],this.ns(this.Ls,0),this.bs(this.Ls)}Ss(t,s,h){let e=s/5,n=i.MeshBuilder.CreateCylinder("",{height:e,diameterTop:0,diameterBottom:t,tessellation:6,subdivisions:1},h),l=n.clone(""),r=n.clone(""),a=2*t,o=i.MeshBuilder.CreatePlane("XZ",{size:a},h),u=i.MeshBuilder.CreatePlane("ZY",{size:a},h),c=i.MeshBuilder.CreatePlane("YX",{size:a},h),f=i.MeshBuilder.CreateBox("ALL",{size:t},h);n.rotation.x=1.57,l.rotation.x=1.57,r.rotation.x=1.57,o.rotation.x=1.57,u.rotation.y=1.57,o.position.x=a,o.position.z=a,u.position.z=a,u.position.y=a,c.position.y=a,c.position.x=a,n.parent=this.fi,l.parent=this.di,r.parent=this.wi,o.parent=this.Dt,u.parent=this.Ft,c.parent=this.Wt,f.parent=this.Mi,n.position.z=s-e/2,l.position.z=s-e/2,r.position.z=s-e/2,n.material=this.Xs,l.material=this.Ys,r.material=this.Zs,o.material=this.Ys,u.material=this.Xs,c.material=this.Zs,f.material=this.vs,this.gs=n,this.Rs=l,this.Ps=r,this.zs=o,this.Ts=u,this.ys=c,this.xs=f,this.ls=[n,l,r,o,u,c,f],this.bs(this.ls),this.ks(this.ls)}setRotGuideFull(t){this.ct=t?360:180,null!=this.rs&&(this.rs.dispose(),this._i.dispose(),this.rs=null,this.enableRotation())}us(){let t=this._*this.p*2;this.rs=new i.Mesh("",this.Xt),this.Es(t,this.rs),this.Cs(t)}Es(t,i){let s=this.Bs(t/2,this.ct),h=this.Bs(t/2,this.ct),e=this.Bs(t/2,this.ct),n=this.Bs(t/1.75,360);s.name="X",h.name="Y",e.name="Z",n.name="ALL",s.rotation.z=1.57,e.rotation.x=-1.57,s.bakeCurrentTransformIntoVertices(),e.bakeCurrentTransformIntoVertices(),n.rotation.x=1.57,s.parent=i,h.parent=i,e.parent=i,n.parent=this.qt,this.$t=s,this.ti=h,this.ii=e,this._i=n,this.js=[s,h,e,n],this.ns(this.js,0),this.bs(this.js)}Cs(t){let s=this.Vs(t/2,this.ct,!1),h=s.clone(""),e=s.clone(""),n=this.Vs(t/1.75,360,!1),l=this.Vs(t/2,360,!1);s.parent=this.$t,h.parent=this.ti,e.parent=this.ii,s.rotation.z=1.57,e.rotation.x=-1.57,n.parent=this._i,l.parent=this._i,s.color=this.A,h.color=this.L,e.color=this.v,n.color=this.R,l.color=i.Color3.Gray(),this.Os=s,this.Gs=h,this.Ns=e,this.qs=n,this.Hs=l,this.cs=[s,h,e,n,l],this.bs(this.cs),this.ks(this.cs)}ns(t,i){t.map(t=>t.visibility=i)}bs(t){t.map(t=>{t.isPickable=!1})}ks(t){t.map(t=>t.renderingGroupId=2)}As(t,s){let h=[new i.Vector3(t,t,0),new i.Vector3(-t,t,0),new i.Vector3(-t,-t,0),new i.Vector3(t,-t,0),new i.Vector3(t,t,0)],e=[new i.Vector3(0,0,0),new i.Vector3(0,0,s)];return i.MeshBuilder.ExtrudeShape("",{shape:h,path:e,scale:1,rotation:0,cap:2},this.Xt)}Vs(t,s,h){null===s&&(s=360);let e,n,l=[],r=3.14/180,a=0;for(let h=0;h<=s;h+=5)e=t*Math.cos(h*r),n=90==h?t:270==h?-t:t*Math.sin(h*r),l[a]=new i.Vector3(e,0,n),a++;if(h){t-=.04;for(let h=0;h<=s;h+=5)e=t*Math.cos(h*r),n=90==h?t:270==h?-t:t*Math.sin(h*r),l[a]=new i.Vector3(e,0,n),a++}return i.MeshBuilder.CreateLines("",{points:l},this.Xt)}Bs(t,s){null===s&&(s=360);let h,e,n=[],l=3.14/180,r=0;for(let a=0;a<=s;a+=30)h=t*Math.cos(a*l),e=90==a?t:270==a?-t:t*Math.sin(a*l),n[r]=new i.Vector3(h,0,e),r++;return i.MeshBuilder.CreateTube("",{path:n,radius:this.S*this.p*2,tessellation:3,cap:i.Mesh.NO_CAP},this.Xt)}fs(){let t=2*this.S*this.p,s=this._*this.p;this.ds=new i.Mesh("",this.Xt),this.Us(t,s,this.ds),this.Ds(t,s)}Us(t,s,h){let e=this.As(t/2,s);e.name="X";let n=e.clone("Y"),l=e.clone("Z"),r=i.MeshBuilder.CreatePlane("XZ",{size:2*t},this.Xt),a=i.MeshBuilder.CreatePlane("ZY",{size:2*t},this.Xt),o=i.MeshBuilder.CreatePlane("YX",{size:2*t},this.Xt);r.rotation.x=1.57,a.rotation.y=-1.57,r.position.x=2*t,r.position.z=2*t,a.position.z=2*t,a.position.y=2*t,o.position.y=2*t,o.position.x=2*t,r.bakeCurrentTransformIntoVertices(),a.bakeCurrentTransformIntoVertices(),o.bakeCurrentTransformIntoVertices();let u=i.MeshBuilder.CreateBox("ALL",{size:2*t},this.Xt);e.parent=h,n.parent=h,l.parent=h,u.parent=h,r.parent=h,a.parent=h,o.parent=h,e.rotation.y=1.57,n.rotation.x-=1.57,this.pi=e,this.Si=n,this.Ai=l,this.It=r,this.Qt=a,this.Jt=o,this.Li=u,this.Fs=[e,n,l,r,a,o,u],this.ns(this.Fs,0),this.bs(this.Fs)}Ds(t,s){let h=i.MeshBuilder.CreateBox("",{size:t},this.Xt),e=h.clone(""),n=h.clone(""),l=2*t,r=i.MeshBuilder.CreatePlane("XZ",{size:l},this.Xt),a=i.MeshBuilder.CreatePlane("ZY",{size:l},this.Xt),o=i.MeshBuilder.CreatePlane("YX",{size:l},this.Xt),u=i.MeshBuilder.CreateBox("ALL",{size:t},this.Xt);r.rotation.x=1.57,a.rotation.y=-1.57,r.position.x=l,r.position.z=l,a.position.z=l,a.position.y=l,o.position.y=l,o.position.x=l,h.parent=this.pi,e.parent=this.Si,n.parent=this.Ai,r.parent=this.It,a.parent=this.Qt,o.parent=this.Jt,u.parent=this.Li,h.position.z=s-t/2,e.position.z=s-t/2,n.position.z=s-t/2,h.material=this.Xs,e.material=this.Ys,n.material=this.Zs,r.material=this.Ys,a.material=this.Xs,o.material=this.Zs,u.material=this.vs,this.Ws=h,this.Is=e,this.Qs=n,this.Js=r,this.Ks=a,this.$s=o,this.th=u,this.ws=[h,e,n,r,a,o,u],this.bs(this.ws),this.ks(this.ws)}setVisibility(t){this.T=t}setLocal(t){this.h!=t&&(this.h=t,t||(this.Pt.rotationQuaternion=i.Quaternion.Identity()))}isLocal(){return this.h}setTransSnap(t){this.l=t}isTransSnap(){return this.l}setRotSnap(t){this.o=t}isRotSnap(){return this.o}setScaleSnap(t){this.$=t}isScaleSnap(){return this.$}setTransSnapValue(t){this.ft.copyFromFloats(t,t,t),this.u=t}getTransSnapValue(){return this.u}setRotSnapValue(t){this.M=t}getRotSnapValue(){return this.M}setScaleSnapValue(t){this.it=t}getScaleSnapValue(){return this.it}ts(t,s,h,e,n){let l=i.Vector3.Dot(e,n);n.scaleToRef(l,this.dt),h.addToRef(this.dt,this.wt);let r=this.wt;this.At.getWorldMatrix().invertToRef(this._t),i.Vector3.TransformCoordinatesToRef(this.wt,this._t,this.wt);let a=0;r.x>=0&&r.y>=0?a=1:r.x<=0&&r.y>=0?a=2:r.x<=0&&r.y<=0?a=3:r.x>=0&&r.y<=0&&(a=4),i.Vector3.TransformCoordinatesToRef(t,this._t,this.dt),i.Vector3.TransformCoordinatesToRef(s,this._t,this.wt),this.wt.subtractInPlace(this.dt);let o=this.wt,u=o.length(),c="";o.x>=0&&o.y>=0?c=o.x>=o.y?"r":"u":o.x<=0&&o.y>=0?c=-o.x>=o.y?"l":"u":o.x<=0&&o.y<=0?c=-o.x>=-o.y?"l":"d":o.x>=0&&o.y<=0&&(c=o.x>=-o.y?"r":"d");let f=0;return"d"==c?f=1==a||4==a?1:-1:"u"==c?f=1==a||4==a?-1:1:"r"==c?f=2==a||1==a?1:-1:"l"==c&&(f=2==a||1==a?-1:1),f*u}ss(t,s,h,e){t.subtractToRef(h,this.dt),s.subtractToRef(h,this.wt),i.Vector3.CrossToRef(this.dt,this.wt,this.Mt);let n=Math.asin(this.Mt.length()/(this.dt.length()*this.wt.length()));return i.Vector3.Dot(this.Mt,e)>0&&(n*=-1),n}static ih(t,s){let h=new i.StandardMaterial("",s);return h.emissiveColor=t,h.diffuseColor=i.Color3.Black(),h.specularColor=i.Color3.Black(),h.backFaceCulling=!1,h}zt(t){this.Xs=n.ih(this.A,t),this.Ys=n.ih(this.L,t),this.Zs=n.ih(this.v,t),this.Vi=n.ih(this.P,t),this.vs=n.ih(this.R,t)}ci(){this.Xs.dispose(),this.Ys.dispose(),this.Zs.dispose(),this.Vi.dispose(),this.vs.dispose()}}t.EditControl=n;class l{constructor(t,i){this.lastMax=10,this.acts=new Array,this.last=-1,this.current=-1,this.mesh=t,this.lastMax=i-1,this.add()}setCapacity(t){0!=t?(this.lastMax=t-1,this.last=-1,this.current=-1,this.acts=new Array,this.add()):console.error("capacity should be more than zero")}add(t){void 0===t&&(t=null);let i=new r(this.mesh,t);this.current<this.last&&(this.acts.splice(this.current+1),this.last=this.current),this.last==this.lastMax?(this.acts.shift(),this.acts.push(i)):(this.acts.push(i),this.last++,this.current++)}undo(){if(this.current>0){let t=this.acts[this.current].getActionType();return this.current--,this.acts[this.current].perform(this.mesh),t}}redo(){if(this.current<this.last)return this.current++,this.acts[this.current].perform(this.mesh),this.acts[this.current].getActionType()}}class r{constructor(t,i){this.sh=t.position.clone(),null==t.rotationQuaternion?(this.hh=null,this.eh=t.rotation.clone()):(this.hh=t.rotationQuaternion.clone(),this.eh=null),this.nh=t.scaling.clone(),this.rh=i}getActionType(){return this.rh}perform(t){t.position.copyFrom(this.sh),null==t.rotationQuaternion?null!=this.eh?t.rotation.copyFrom(this.eh):t.rotation.copyFrom(this.hh.toEulerAngles()):null!=this.hh?t.rotationQuaternion.copyFrom(this.hh):t.rotationQuaternion.copyFrom(i.Quaternion.RotationYawPitchRoll(this.eh.y,this.eh.x,this.eh.z)),t.scaling.copyFrom(this.nh)}}})(),e})());
2
2
  //# sourceMappingURL=EditControl.js.map