@soonspacejs/plugin-follow-mouse 2.4.14 → 2.5.0-alpha.1
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.
- package/dist/index.esm.js +1 -1
- package/dist/index.js +2 -2
- package/package.json +2 -2
package/dist/index.esm.js
CHANGED
|
@@ -12,4 +12,4 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
|
12
12
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
13
13
|
PERFORMANCE OF THIS SOFTWARE.
|
|
14
14
|
***************************************************************************** */
|
|
15
|
-
function s(s,t,e,o){return new(e||(e=Promise))((function(i,n){function h(s){try{l(o.next(s))}catch(s){n(s)}}function c(s){try{l(o.throw(s))}catch(s){n(s)}}function l(s){var t;s.done?i(s.value):(t=s.value,t instanceof e?t:new e((function(s){s(t)}))).then(h,c)}l((o=o.apply(s,t||[])).next())}))}class t{constructor(s){this.ssp=s,this.object=null,this.objectBbox=new this.ssp.THREE.Box3(new this.ssp.THREE.Vector3,new this.ssp.THREE.Vector3),this.objectSourcePosition=new this.ssp.THREE.Vector3,this.sceneMesh=[],this.helper=null,this.placedObject=[],this.options={},this.mouseDownModelPosition=new this.ssp.THREE.Vector3,this.onMouseMove=this.onMouseMove.bind(this),this.onMouseDown=this.onMouseDown.bind(this),this.onClick=this.onClick.bind(this),this.onRightClick=this.onRightClick.bind(this),this.onDblClick=this.onDblClick.bind(this),this.onKeyUp=this.onKeyUp.bind(this)}start(s,t={}){this.options=t,this.object=s,this.objectBbox.setFromObject(s),this.objectSourcePosition.copy(s.position.clone()),this.sceneMesh=this.ssp.viewport.scener.intersectsList.getAll().filter((s=>{let t=s.visible;return s.traverseAncestors((s=>{!1===s.visible&&(t=!1)})),t}));const{openHelper:e=!0,helperColor:o=16776960}=this.options
|
|
15
|
+
function s(s,t,e,o){return new(e||(e=Promise))((function(i,n){function h(s){try{l(o.next(s))}catch(s){n(s)}}function c(s){try{l(o.throw(s))}catch(s){n(s)}}function l(s){var t;s.done?i(s.value):(t=s.value,t instanceof e?t:new e((function(s){s(t)}))).then(h,c)}l((o=o.apply(s,t||[])).next())}))}class t{constructor(s){this.ssp=s,this.object=null,this.objectBbox=new this.ssp.THREE.Box3(new this.ssp.THREE.Vector3,new this.ssp.THREE.Vector3),this.objectSourcePosition=new this.ssp.THREE.Vector3,this.sceneMesh=[],this.helper=null,this.placedObject=[],this.options={},this.mouseDownModelPosition=new this.ssp.THREE.Vector3,this.onMouseMove=this.onMouseMove.bind(this),this.onMouseDown=this.onMouseDown.bind(this),this.onClick=this.onClick.bind(this),this.onRightClick=this.onRightClick.bind(this),this.onDblClick=this.onDblClick.bind(this),this.onKeyUp=this.onKeyUp.bind(this)}start(s,t={}){this.options=t,this.object=s,this.objectBbox.setFromObject(s),this.objectSourcePosition.copy(s.position.clone()),this.sceneMesh=this.ssp.viewport.scener.intersectsList.getAll().filter((s=>{let t=s.visible;return s.traverseAncestors((s=>{!1===s.visible&&(t=!1)})),t}));const{openHelper:e=!0,helperColor:o=16776960}=this.options;e&&"Model"===this.object.stype&&(s.updateWorldMatrix(!0,!0),this.helper=this.ssp.addBoxHelper({id:"followMouseBoxHelper",box:this.objectBbox,color:o}),this.ssp.signals.sceneChanged.dispatch()),s.traverse((s=>{const t=this.sceneMesh.findIndex((t=>t.uuid===s.uuid));-1!==t&&this.sceneMesh.splice(t,1)})),this.ssp.signals.mouseMove.add(this.onMouseMove),this.ssp.signals.mouseDown.add(this.onMouseDown),this.ssp.signals.click.add(this.onClick),this.ssp.signals.rightClick.add(this.onRightClick),this.ssp.signals.dblClick.add(this.onDblClick),this.ssp.signals.keyUp.add(this.onKeyUp)}stop(){var s;null===(s=this.object)||void 0===s||s.position.copy(this.objectSourcePosition.clone()),this.ssp.removeHelperById("followMouseBoxHelper"),this.object=null,this.objectBbox=new this.ssp.THREE.Box3(new this.ssp.THREE.Vector3,new this.ssp.THREE.Vector3),this.objectSourcePosition=new this.ssp.THREE.Vector3,this.sceneMesh=[],this.helper=null,this.placedObject=[],this.options={},this.mouseDownModelPosition=new this.ssp.THREE.Vector3,this.ssp.signals.mouseMove.remove(this.onMouseMove),this.ssp.signals.mouseDown.remove(this.onMouseDown),this.ssp.signals.click.remove(this.onClick),this.ssp.signals.dblClick.remove(this.onDblClick),this.ssp.signals.keyUp.remove(this.onKeyUp)}onMouseMove(s){if(s.preventDefault(),!this.object)return;const{offset:t=new this.ssp.THREE.Vector3(1,1,1)}=this.options,e=this.ssp.viewport.getIntersects(s,this.sceneMesh),o=this.object.getWorldPosition(new this.ssp.THREE.Vector3).sub(this.object.position),i=new this.ssp.THREE.Vector3;let n="y";if(e.length>0){const{point:s,face:t}=e[0];if(i.copy(s.clone()),t){const{normal:s}=t;0===s.y&&0===s.z&&(1===s.x?n="x":-1===s.x&&(n="-x")),0===s.x&&0===s.z&&(1===s.y?n="y":-1===s.y&&(n="-y")),0===s.x&&0===s.y&&(1===s.z?n="z":-1===s.z&&(n="-z"))}}else i.copy(this.ssp.getPositionByOffset(s,.1));const h=i.sub(o),c=this.objectBbox.getSize(new this.ssp.THREE.Vector3);switch(n){case"x":h.setX(h.x+c.x/2+t.x);break;case"-x":h.setX(h.x-c.x/2-t.x);break;case"y":h.setY(h.y+t.y);break;case"-y":h.setY(h.y-c.y-t.y);break;case"z":h.setZ(h.z+c.z/2+t.z);break;case"-z":h.setZ(h.z-c.z/2-t.z)}this.object.position.copy(h).setY(h.y),this.helper&&this.helper.box.copy(new this.ssp.THREE.Box3(new this.ssp.THREE.Vector3,new this.ssp.THREE.Vector3).setFromObject(this.object)),this.ssp.signals.sceneChanged.dispatch()}onMouseDown(s){this.object&&this.mouseDownModelPosition.copy(this.object.getWorldPosition(new this.ssp.THREE.Vector3))}onClick(s){this.onPlace()}onRightClick(s){this.onDelPrev()}onDblClick(t){return s(this,void 0,void 0,(function*(){yield this.onPlace(),this.options.onDone&&this.options.onDone(this.placedObject),this.stop()}))}onKeyUp(s){switch(s.code){case"Backspace":this.onDelPrev();break;case"Enter":this.options.onDone&&this.options.onDone(this.placedObject),this.stop();break;case"Escape":this.options.onCancel&&this.options.onCancel(),this.stop()}}onPlace(){var s;if("Model"===(null===(s=this.object)||void 0===s?void 0:s.stype))return this.ssp.cloneModel(this.object,{id:`clone_${this.object.sid}_${this.placedObject.length+1}`,position:this.mouseDownModelPosition.clone()}).then((s=>(this.placedObject.push(s),this.options.onPlace&&this.options.onPlace(s),Promise.resolve())))}onDelPrev(){if(0===this.placedObject.length)return;const s=this.placedObject[this.placedObject.length-1];this.ssp.removeObject(s),this.placedObject.splice(this.placedObject.length-1,1),this.options.onBack&&this.options.onBack(s)}}export{t as default};
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(s,
|
|
1
|
+
!function(s,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(s="undefined"!=typeof globalThis?globalThis:s||self).FollowMousePlugin=t()}(this,(function(){"use strict";
|
|
2
2
|
/*! *****************************************************************************
|
|
3
3
|
Copyright (c) Microsoft Corporation.
|
|
4
4
|
|
|
@@ -12,4 +12,4 @@
|
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */function s(s,e,
|
|
15
|
+
***************************************************************************** */function s(s,t,e,o){return new(e||(e=Promise))((function(i,n){function h(s){try{l(o.next(s))}catch(s){n(s)}}function c(s){try{l(o.throw(s))}catch(s){n(s)}}function l(s){var t;s.done?i(s.value):(t=s.value,t instanceof e?t:new e((function(s){s(t)}))).then(h,c)}l((o=o.apply(s,t||[])).next())}))}const t="followMouseBoxHelper";return class{constructor(s){this.ssp=s,this.object=null,this.objectBbox=new this.ssp.THREE.Box3(new this.ssp.THREE.Vector3,new this.ssp.THREE.Vector3),this.objectSourcePosition=new this.ssp.THREE.Vector3,this.sceneMesh=[],this.helper=null,this.placedObject=[],this.options={},this.mouseDownModelPosition=new this.ssp.THREE.Vector3,this.onMouseMove=this.onMouseMove.bind(this),this.onMouseDown=this.onMouseDown.bind(this),this.onClick=this.onClick.bind(this),this.onRightClick=this.onRightClick.bind(this),this.onDblClick=this.onDblClick.bind(this),this.onKeyUp=this.onKeyUp.bind(this)}start(s,e={}){this.options=e,this.object=s,this.objectBbox.setFromObject(s),this.objectSourcePosition.copy(s.position.clone()),this.sceneMesh=this.ssp.viewport.scener.intersectsList.getAll().filter((s=>{let t=s.visible;return s.traverseAncestors((s=>{!1===s.visible&&(t=!1)})),t}));const{openHelper:o=!0,helperColor:i=16776960}=this.options;o&&"Model"===this.object.stype&&(s.updateWorldMatrix(!0,!0),this.helper=this.ssp.addBoxHelper({id:t,box:this.objectBbox,color:i}),this.ssp.signals.sceneChanged.dispatch()),s.traverse((s=>{const t=this.sceneMesh.findIndex((t=>t.uuid===s.uuid));-1!==t&&this.sceneMesh.splice(t,1)})),this.ssp.signals.mouseMove.add(this.onMouseMove),this.ssp.signals.mouseDown.add(this.onMouseDown),this.ssp.signals.click.add(this.onClick),this.ssp.signals.rightClick.add(this.onRightClick),this.ssp.signals.dblClick.add(this.onDblClick),this.ssp.signals.keyUp.add(this.onKeyUp)}stop(){var s;null===(s=this.object)||void 0===s||s.position.copy(this.objectSourcePosition.clone()),this.ssp.removeHelperById(t),this.object=null,this.objectBbox=new this.ssp.THREE.Box3(new this.ssp.THREE.Vector3,new this.ssp.THREE.Vector3),this.objectSourcePosition=new this.ssp.THREE.Vector3,this.sceneMesh=[],this.helper=null,this.placedObject=[],this.options={},this.mouseDownModelPosition=new this.ssp.THREE.Vector3,this.ssp.signals.mouseMove.remove(this.onMouseMove),this.ssp.signals.mouseDown.remove(this.onMouseDown),this.ssp.signals.click.remove(this.onClick),this.ssp.signals.dblClick.remove(this.onDblClick),this.ssp.signals.keyUp.remove(this.onKeyUp)}onMouseMove(s){if(s.preventDefault(),!this.object)return;const{offset:t=new this.ssp.THREE.Vector3(1,1,1)}=this.options,e=this.ssp.viewport.getIntersects(s,this.sceneMesh),o=this.object.getWorldPosition(new this.ssp.THREE.Vector3).sub(this.object.position),i=new this.ssp.THREE.Vector3;let n="y";if(e.length>0){const{point:s,face:t}=e[0];if(i.copy(s.clone()),t){const{normal:s}=t;0===s.y&&0===s.z&&(1===s.x?n="x":-1===s.x&&(n="-x")),0===s.x&&0===s.z&&(1===s.y?n="y":-1===s.y&&(n="-y")),0===s.x&&0===s.y&&(1===s.z?n="z":-1===s.z&&(n="-z"))}}else i.copy(this.ssp.getPositionByOffset(s,.1));const h=i.sub(o),c=this.objectBbox.getSize(new this.ssp.THREE.Vector3);switch(n){case"x":h.setX(h.x+c.x/2+t.x);break;case"-x":h.setX(h.x-c.x/2-t.x);break;case"y":h.setY(h.y+t.y);break;case"-y":h.setY(h.y-c.y-t.y);break;case"z":h.setZ(h.z+c.z/2+t.z);break;case"-z":h.setZ(h.z-c.z/2-t.z)}this.object.position.copy(h).setY(h.y),this.helper&&this.helper.box.copy(new this.ssp.THREE.Box3(new this.ssp.THREE.Vector3,new this.ssp.THREE.Vector3).setFromObject(this.object)),this.ssp.signals.sceneChanged.dispatch()}onMouseDown(s){this.object&&this.mouseDownModelPosition.copy(this.object.getWorldPosition(new this.ssp.THREE.Vector3))}onClick(s){this.onPlace()}onRightClick(s){this.onDelPrev()}onDblClick(t){return s(this,void 0,void 0,(function*(){yield this.onPlace(),this.options.onDone&&this.options.onDone(this.placedObject),this.stop()}))}onKeyUp(s){switch(s.code){case"Backspace":this.onDelPrev();break;case"Enter":this.options.onDone&&this.options.onDone(this.placedObject),this.stop();break;case"Escape":this.options.onCancel&&this.options.onCancel(),this.stop()}}onPlace(){var s;if("Model"===(null===(s=this.object)||void 0===s?void 0:s.stype))return this.ssp.cloneModel(this.object,{id:`clone_${this.object.sid}_${this.placedObject.length+1}`,position:this.mouseDownModelPosition.clone()}).then((s=>(this.placedObject.push(s),this.options.onPlace&&this.options.onPlace(s),Promise.resolve())))}onDelPrev(){if(0===this.placedObject.length)return;const s=this.placedObject[this.placedObject.length-1];this.ssp.removeObject(s),this.placedObject.splice(this.placedObject.length-1,1),this.options.onBack&&this.options.onBack(s)}}}));
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@soonspacejs/plugin-follow-mouse",
|
|
3
3
|
"pluginName": "FollowMousePlugin",
|
|
4
|
-
"version": "2.
|
|
4
|
+
"version": "2.5.0-alpha.1",
|
|
5
5
|
"description": "Scene object follow mouse plugin for SoonSpace.js",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"module": "dist/index.esm.js",
|
|
@@ -13,5 +13,5 @@
|
|
|
13
13
|
],
|
|
14
14
|
"author": "xuek",
|
|
15
15
|
"license": "UNLICENSED",
|
|
16
|
-
"gitHead": "
|
|
16
|
+
"gitHead": "0718030c70fef431833f4f3d46829009f8d9d2be"
|
|
17
17
|
}
|