@soonspacejs/plugin-drawing-shape 2.3.11 → 2.3.14

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.d.ts CHANGED
@@ -1,4 +1,5 @@
1
- import SoonSpace, { SetOptionsPointInfo, SetOptionsLineInfo, SetOptionsPolygonInfo, SetOptionsCircleInfo } from 'soonspacejs';
1
+ import SoonSpace from 'soonspacejs';
2
+ import { SetOptionsPointInfo, SetOptionsLineInfo, SetOptionsPolygonInfo, SetOptionsCircleInfo } from 'soonspacejs/src/Library';
2
3
  export declare type DrawingPointInfo = SetOptionsPointInfo;
3
4
  export interface DrawingPointEvents {
4
5
  onCancel?: () => void;
@@ -17,13 +18,6 @@ export declare type DrawingCircleInfo = Omit<SetOptionsCircleInfo, 'radius'>;
17
18
  export interface DrawingCircleEvents {
18
19
  onCancel?: () => void;
19
20
  }
20
- export declare const DrawingIds: {
21
- canvas: string;
22
- point: string;
23
- line: string;
24
- polygon: string;
25
- circle: string;
26
- };
27
21
  export default class DrawIngShapePlugin {
28
22
  readonly ssp: SoonSpace;
29
23
  readonly viewport: SoonSpace['viewport'];
package/dist/index.esm.js CHANGED
@@ -1 +1 @@
1
- const s={canvas:"drawingCanvas",point:"drawingPoint",line:"drawingLine",polygon:"drawingPolygon",circle:"drawingCircle"};export default class{constructor(s){this.ssp=s,this.viewport=s.viewport}drawingPoint(i,t){return new Promise((e=>{this.clearDrawingCanvas3D();const n=new this.ssp.library.Canvas3D({id:s.canvas,points:[Object.assign(Object.assign({},i),{id:s.point})]});this.ssp.manager.store.canvas3DManager.scene.add(n);const a=n.getPoint(s.point),o=s=>{if(!a)return;const i=this.ssp.viewport.getIntersects(s),t=i.length>0?i[0].point.clone():this.ssp.getPositionByOffset(s);a.setOptions({position:t})},c=s=>{if(g(),!a)return;const t=this.ssp.viewport.getIntersects(s),n=t.length>0?t[0].point.clone():this.ssp.getPositionByOffset(s);a.setOptions({position:n}),e(Object.assign(Object.assign({},i),{position:n.clone()}))},l=()=>{var s;this.clearDrawingCanvas3D(),g(),null===(s=null==t?void 0:t.onCancel)||void 0===s||s.call(t)},r=s=>{switch(s.code){case"Escape":l()}},g=()=>{this.ssp.signals.mouseMove.remove(o),this.ssp.signals.click.remove(c),this.ssp.signals.rightClick.remove(l),this.ssp.signals.keyUp.remove(r)};this.ssp.signals.mouseMove.add(o),this.ssp.signals.click.add(c),this.ssp.signals.rightClick.add(l),this.ssp.signals.keyUp.add(r)}))}drawingLine(i,t){return new Promise((e=>{this.clearDrawingCanvas3D();const n=new this.ssp.library.Canvas3D({id:s.canvas,lines:[Object.assign(Object.assign({},i),{points:[],id:s.line})]});this.ssp.manager.store.canvas3DManager.scene.add(n);const a=n.getLine(s.line),o=[],c=s=>{const t=this.ssp.viewport.getIntersects(s),e=t.length>0?t[0].point.clone():this.ssp.getPositionByOffset(s);a&&a.setOptions(Object.assign(Object.assign({},i),{points:[...o,e.clone().setY(e.y+1)]}))},l=s=>{const t=this.ssp.viewport.getIntersects(s),e=t.length>0?t[0].point.clone():this.ssp.getPositionByOffset(s);o.push(e.clone().setY(e.y+1)),a&&a.setOptions(Object.assign(Object.assign({},i),{points:o}))},r=()=>{var s;o.pop(),a&&(a.setOptions(Object.assign(Object.assign({},i),{points:o})),null===(s=null==t?void 0:t.onCancelPrev)||void 0===s||s.call(t))},g=()=>{h(),e(Object.assign(Object.assign({},i),{points:o}))},p=s=>{var i;switch(s.code){case"Backspace":r();break;case"Escape":this.clearDrawingCanvas3D(),h(),null===(i=null==t?void 0:t.onCancel)||void 0===i||i.call(t)}},h=()=>{this.ssp.signals.mouseMove.remove(c),this.ssp.signals.click.remove(l),this.ssp.signals.rightClick.remove(r),this.ssp.signals.dblClick.remove(g),this.ssp.signals.keyUp.remove(p)};this.ssp.signals.mouseMove.add(c),this.ssp.signals.click.add(l),this.ssp.signals.rightClick.add(r),this.ssp.signals.dblClick.add(g),this.ssp.signals.keyUp.add(p)}))}drawingPolygon(i,t){return new Promise((e=>{this.clearDrawingCanvas3D();const n=new this.ssp.library.Canvas3D({id:s.canvas,polygons:[Object.assign(Object.assign({},i),{points:[],yHeight:0,id:s.polygon})]});this.ssp.manager.store.canvas3DManager.scene.add(n);const a=n.getPolygon(s.polygon),o=[],c=s=>{var t;const e=this.ssp.viewport.getIntersects(s),n=e.length>0?e[0].point.clone():this.ssp.getPositionByOffset(s);a&&a.setOptions(Object.assign(Object.assign({},i),{yHeight:((null===(t=o[0])||void 0===t?void 0:t.y)||n.y)+1,points:[...o,n]}))},l=s=>{var t;const e=this.ssp.viewport.getIntersects(s),n=e.length>0?e[0].point.clone():this.ssp.getPositionByOffset(s);o.push(n),a&&a.setOptions(Object.assign(Object.assign({},i),{yHeight:((null===(t=o[0])||void 0===t?void 0:t.y)||0)+1,points:o}))},r=()=>{var s,e;o.pop(),a&&(a.setOptions(Object.assign(Object.assign({},i),{yHeight:((null===(s=o[0])||void 0===s?void 0:s.y)||0)+1,points:o})),null===(e=null==t?void 0:t.onCancelPrev)||void 0===e||e.call(t))},g=()=>{var s;h(),e(Object.assign(Object.assign({},i),{yHeight:((null===(s=o[0])||void 0===s?void 0:s.y)||0)+1,points:o}))},p=s=>{var i;switch(s.code){case"Backspace":r();break;case"Escape":this.clearDrawingCanvas3D(),h(),null===(i=null==t?void 0:t.onCancel)||void 0===i||i.call(t)}},h=()=>{this.ssp.signals.mouseMove.remove(c),this.ssp.signals.click.remove(l),this.ssp.signals.rightClick.remove(r),this.ssp.signals.dblClick.remove(g),this.ssp.signals.keyUp.remove(p)};this.ssp.signals.mouseMove.add(c),this.ssp.signals.click.add(l),this.ssp.signals.rightClick.add(r),this.ssp.signals.dblClick.add(g),this.ssp.signals.keyUp.add(p)}))}drawingCircle(i,t){return new Promise((e=>{this.clearDrawingCanvas3D();const n=new this.ssp.library.Canvas3D({id:s.canvas,circles:[Object.assign(Object.assign({},i),{id:s.circle})]});this.ssp.manager.store.canvas3DManager.scene.add(n);const a=n.getCircle(s.circle);let o,c=100;const l=s=>{if(!a||!o)return;const i=this.ssp.viewport.getIntersects(s),t=i.length>0?i[0].point.clone():this.ssp.getPositionByOffset(s);c=t.distanceTo(o),a.setOptions({position:o,radius:c})},r=s=>{if(!a)return;const t=this.ssp.viewport.getIntersects(s),n=t.length>0?t[0].point.clone():this.ssp.getPositionByOffset(s);o?(h(),c=n.distanceTo(this.ssp.utils.IVector3ToVector3(o)),a.setOptions({position:o,radius:c}),e(Object.assign(Object.assign({},i),{position:o,radius:c}))):o=n.clone().setY(n.y+1)},g=()=>{var s;this.clearDrawingCanvas3D(),h(),null===(s=null==t?void 0:t.onCancel)||void 0===s||s.call(t)},p=s=>{switch(s.code){case"Escape":g()}},h=()=>{this.ssp.signals.mouseMove.remove(l),this.ssp.signals.click.remove(r),this.ssp.signals.rightClick.remove(g),this.ssp.signals.keyUp.remove(p)};this.ssp.signals.mouseMove.add(l),this.ssp.signals.click.add(r),this.ssp.signals.rightClick.add(g),this.ssp.signals.keyUp.add(p)}))}clearDrawingCanvas3D(){this.ssp.removeCanvas3DById(s.canvas)}}export{s as DrawingIds};
1
+ const s="drawingCanvas",i="drawingPoint",t="drawingLine",e="drawingPolygon",n="drawingCircle";export default class{constructor(s){this.ssp=s,this.viewport=s.viewport}drawingPoint(t,e){return new Promise((n=>{this.clearDrawingCanvas3D();const a=new this.ssp.library.Canvas3D({id:s,points:[Object.assign(Object.assign({},t),{id:i})]});this.ssp.manager.store.canvas3DManager.scene.add(a);const o=a.getPoint(i),c=s=>{if(!o)return;const i=this.ssp.viewport.getIntersects(s),t=i.length>0?i[0].point.clone():this.ssp.getPositionByOffset(s);o.setOptions({position:t})},l=s=>{if(p(),!o)return;const i=this.ssp.viewport.getIntersects(s),e=i.length>0?i[0].point.clone():this.ssp.getPositionByOffset(s);o.setOptions({position:e}),n(Object.assign(Object.assign({},t),{position:e.clone()}))},r=()=>{var s;this.clearDrawingCanvas3D(),p(),null===(s=null==e?void 0:e.onCancel)||void 0===s||s.call(e)},g=s=>{switch(s.code){case"Escape":r()}},p=()=>{this.ssp.signals.mouseMove.remove(c),this.ssp.signals.click.remove(l),this.ssp.signals.rightClick.remove(r),this.ssp.signals.keyUp.remove(g)};this.ssp.signals.mouseMove.add(c),this.ssp.signals.click.add(l),this.ssp.signals.rightClick.add(r),this.ssp.signals.keyUp.add(g)}))}drawingLine(i,e){return new Promise((n=>{this.clearDrawingCanvas3D();const a=new this.ssp.library.Canvas3D({id:s,lines:[Object.assign(Object.assign({},i),{points:[],id:t})]});this.ssp.manager.store.canvas3DManager.scene.add(a);const o=a.getLine(t),c=[],l=s=>{const t=this.ssp.viewport.getIntersects(s),e=t.length>0?t[0].point.clone():this.ssp.getPositionByOffset(s);o&&o.setOptions(Object.assign(Object.assign({},i),{points:[...c,e.clone().setY(e.y+1)]}))},r=s=>{const t=this.ssp.viewport.getIntersects(s),e=t.length>0?t[0].point.clone():this.ssp.getPositionByOffset(s);c.push(e.clone().setY(e.y+1)),o&&o.setOptions(Object.assign(Object.assign({},i),{points:c}))},g=()=>{var s;c.pop(),o&&(o.setOptions(Object.assign(Object.assign({},i),{points:c})),null===(s=null==e?void 0:e.onCancelPrev)||void 0===s||s.call(e))},p=()=>{d(),n(Object.assign(Object.assign({},i),{points:c}))},h=s=>{var i;switch(s.code){case"Backspace":g();break;case"Escape":this.clearDrawingCanvas3D(),d(),null===(i=null==e?void 0:e.onCancel)||void 0===i||i.call(e)}},d=()=>{this.ssp.signals.mouseMove.remove(l),this.ssp.signals.click.remove(r),this.ssp.signals.rightClick.remove(g),this.ssp.signals.dblClick.remove(p),this.ssp.signals.keyUp.remove(h)};this.ssp.signals.mouseMove.add(l),this.ssp.signals.click.add(r),this.ssp.signals.rightClick.add(g),this.ssp.signals.dblClick.add(p),this.ssp.signals.keyUp.add(h)}))}drawingPolygon(i,t){return new Promise((n=>{this.clearDrawingCanvas3D();const a=new this.ssp.library.Canvas3D({id:s,polygons:[Object.assign(Object.assign({},i),{points:[],yHeight:0,id:e})]});this.ssp.manager.store.canvas3DManager.scene.add(a);const o=a.getPolygon(e),c=[],l=s=>{var t;const e=this.ssp.viewport.getIntersects(s),n=e.length>0?e[0].point.clone():this.ssp.getPositionByOffset(s);o&&o.setOptions(Object.assign(Object.assign({},i),{yHeight:((null===(t=c[0])||void 0===t?void 0:t.y)||n.y)+1,points:[...c,n]}))},r=s=>{var t;const e=this.ssp.viewport.getIntersects(s),n=e.length>0?e[0].point.clone():this.ssp.getPositionByOffset(s);c.push(n),o&&o.setOptions(Object.assign(Object.assign({},i),{yHeight:((null===(t=c[0])||void 0===t?void 0:t.y)||0)+1,points:c}))},g=()=>{var s,e;c.pop(),o&&(o.setOptions(Object.assign(Object.assign({},i),{yHeight:((null===(s=c[0])||void 0===s?void 0:s.y)||0)+1,points:c})),null===(e=null==t?void 0:t.onCancelPrev)||void 0===e||e.call(t))},p=()=>{var s;d(),n(Object.assign(Object.assign({},i),{yHeight:((null===(s=c[0])||void 0===s?void 0:s.y)||0)+1,points:c}))},h=s=>{var i;switch(s.code){case"Backspace":g();break;case"Escape":this.clearDrawingCanvas3D(),d(),null===(i=null==t?void 0:t.onCancel)||void 0===i||i.call(t)}},d=()=>{this.ssp.signals.mouseMove.remove(l),this.ssp.signals.click.remove(r),this.ssp.signals.rightClick.remove(g),this.ssp.signals.dblClick.remove(p),this.ssp.signals.keyUp.remove(h)};this.ssp.signals.mouseMove.add(l),this.ssp.signals.click.add(r),this.ssp.signals.rightClick.add(g),this.ssp.signals.dblClick.add(p),this.ssp.signals.keyUp.add(h)}))}drawingCircle(i,t){return new Promise((e=>{this.clearDrawingCanvas3D();const a=new this.ssp.library.Canvas3D({id:s,circles:[Object.assign(Object.assign({},i),{id:n})]});this.ssp.manager.store.canvas3DManager.scene.add(a);const o=a.getCircle(n);let c,l=100;const r=s=>{if(!o||!c)return;const i=this.ssp.viewport.getIntersects(s),t=i.length>0?i[0].point.clone():this.ssp.getPositionByOffset(s);l=t.distanceTo(c),o.setOptions({position:c,radius:l})},g=s=>{if(!o)return;const t=this.ssp.viewport.getIntersects(s),n=t.length>0?t[0].point.clone():this.ssp.getPositionByOffset(s);c?(d(),l=n.distanceTo(this.ssp.utils.IVector3ToVector3(c)),o.setOptions({position:c,radius:l}),e(Object.assign(Object.assign({},i),{position:c,radius:l}))):c=n.clone().setY(n.y+1)},p=()=>{var s;this.clearDrawingCanvas3D(),d(),null===(s=null==t?void 0:t.onCancel)||void 0===s||s.call(t)},h=s=>{switch(s.code){case"Escape":p()}},d=()=>{this.ssp.signals.mouseMove.remove(r),this.ssp.signals.click.remove(g),this.ssp.signals.rightClick.remove(p),this.ssp.signals.keyUp.remove(h)};this.ssp.signals.mouseMove.add(r),this.ssp.signals.click.add(g),this.ssp.signals.rightClick.add(p),this.ssp.signals.keyUp.add(h)}))}clearDrawingCanvas3D(){this.ssp.removeCanvas3DById(s)}}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var DrawingShapePlugin=function(s){"use strict";const i={canvas:"drawingCanvas",point:"drawingPoint",line:"drawingLine",polygon:"drawingPolygon",circle:"drawingCircle"};return s.DrawingIds=i,s.default=class{constructor(s){this.ssp=s,this.viewport=s.viewport}drawingPoint(s,e){return new Promise((t=>{this.clearDrawingCanvas3D();const n=new this.ssp.library.Canvas3D({id:i.canvas,points:[Object.assign(Object.assign({},s),{id:i.point})]});this.ssp.manager.store.canvas3DManager.scene.add(n);const a=n.getPoint(i.point),o=s=>{if(!a)return;const i=this.ssp.viewport.getIntersects(s),e=i.length>0?i[0].point.clone():this.ssp.getPositionByOffset(s);a.setOptions({position:e})},c=i=>{if(g(),!a)return;const e=this.ssp.viewport.getIntersects(i),n=e.length>0?e[0].point.clone():this.ssp.getPositionByOffset(i);a.setOptions({position:n}),t(Object.assign(Object.assign({},s),{position:n.clone()}))},l=()=>{var s;this.clearDrawingCanvas3D(),g(),null===(s=null==e?void 0:e.onCancel)||void 0===s||s.call(e)},r=s=>{switch(s.code){case"Escape":l()}},g=()=>{this.ssp.signals.mouseMove.remove(o),this.ssp.signals.click.remove(c),this.ssp.signals.rightClick.remove(l),this.ssp.signals.keyUp.remove(r)};this.ssp.signals.mouseMove.add(o),this.ssp.signals.click.add(c),this.ssp.signals.rightClick.add(l),this.ssp.signals.keyUp.add(r)}))}drawingLine(s,e){return new Promise((t=>{this.clearDrawingCanvas3D();const n=new this.ssp.library.Canvas3D({id:i.canvas,lines:[Object.assign(Object.assign({},s),{points:[],id:i.line})]});this.ssp.manager.store.canvas3DManager.scene.add(n);const a=n.getLine(i.line),o=[],c=i=>{const e=this.ssp.viewport.getIntersects(i),t=e.length>0?e[0].point.clone():this.ssp.getPositionByOffset(i);a&&a.setOptions(Object.assign(Object.assign({},s),{points:[...o,t.clone().setY(t.y+1)]}))},l=i=>{const e=this.ssp.viewport.getIntersects(i),t=e.length>0?e[0].point.clone():this.ssp.getPositionByOffset(i);o.push(t.clone().setY(t.y+1)),a&&a.setOptions(Object.assign(Object.assign({},s),{points:o}))},r=()=>{var i;o.pop(),a&&(a.setOptions(Object.assign(Object.assign({},s),{points:o})),null===(i=null==e?void 0:e.onCancelPrev)||void 0===i||i.call(e))},g=()=>{h(),t(Object.assign(Object.assign({},s),{points:o}))},p=s=>{var i;switch(s.code){case"Backspace":r();break;case"Escape":this.clearDrawingCanvas3D(),h(),null===(i=null==e?void 0:e.onCancel)||void 0===i||i.call(e)}},h=()=>{this.ssp.signals.mouseMove.remove(c),this.ssp.signals.click.remove(l),this.ssp.signals.rightClick.remove(r),this.ssp.signals.dblClick.remove(g),this.ssp.signals.keyUp.remove(p)};this.ssp.signals.mouseMove.add(c),this.ssp.signals.click.add(l),this.ssp.signals.rightClick.add(r),this.ssp.signals.dblClick.add(g),this.ssp.signals.keyUp.add(p)}))}drawingPolygon(s,e){return new Promise((t=>{this.clearDrawingCanvas3D();const n=new this.ssp.library.Canvas3D({id:i.canvas,polygons:[Object.assign(Object.assign({},s),{points:[],yHeight:0,id:i.polygon})]});this.ssp.manager.store.canvas3DManager.scene.add(n);const a=n.getPolygon(i.polygon),o=[],c=i=>{var e;const t=this.ssp.viewport.getIntersects(i),n=t.length>0?t[0].point.clone():this.ssp.getPositionByOffset(i);a&&a.setOptions(Object.assign(Object.assign({},s),{yHeight:((null===(e=o[0])||void 0===e?void 0:e.y)||n.y)+1,points:[...o,n]}))},l=i=>{var e;const t=this.ssp.viewport.getIntersects(i),n=t.length>0?t[0].point.clone():this.ssp.getPositionByOffset(i);o.push(n),a&&a.setOptions(Object.assign(Object.assign({},s),{yHeight:((null===(e=o[0])||void 0===e?void 0:e.y)||0)+1,points:o}))},r=()=>{var i,t;o.pop(),a&&(a.setOptions(Object.assign(Object.assign({},s),{yHeight:((null===(i=o[0])||void 0===i?void 0:i.y)||0)+1,points:o})),null===(t=null==e?void 0:e.onCancelPrev)||void 0===t||t.call(e))},g=()=>{var i;h(),t(Object.assign(Object.assign({},s),{yHeight:((null===(i=o[0])||void 0===i?void 0:i.y)||0)+1,points:o}))},p=s=>{var i;switch(s.code){case"Backspace":r();break;case"Escape":this.clearDrawingCanvas3D(),h(),null===(i=null==e?void 0:e.onCancel)||void 0===i||i.call(e)}},h=()=>{this.ssp.signals.mouseMove.remove(c),this.ssp.signals.click.remove(l),this.ssp.signals.rightClick.remove(r),this.ssp.signals.dblClick.remove(g),this.ssp.signals.keyUp.remove(p)};this.ssp.signals.mouseMove.add(c),this.ssp.signals.click.add(l),this.ssp.signals.rightClick.add(r),this.ssp.signals.dblClick.add(g),this.ssp.signals.keyUp.add(p)}))}drawingCircle(s,e){return new Promise((t=>{this.clearDrawingCanvas3D();const n=new this.ssp.library.Canvas3D({id:i.canvas,circles:[Object.assign(Object.assign({},s),{id:i.circle})]});this.ssp.manager.store.canvas3DManager.scene.add(n);const a=n.getCircle(i.circle);let o,c=100;const l=s=>{if(!a||!o)return;const i=this.ssp.viewport.getIntersects(s),e=i.length>0?i[0].point.clone():this.ssp.getPositionByOffset(s);c=e.distanceTo(o),a.setOptions({position:o,radius:c})},r=i=>{if(!a)return;const e=this.ssp.viewport.getIntersects(i),n=e.length>0?e[0].point.clone():this.ssp.getPositionByOffset(i);o?(h(),c=n.distanceTo(this.ssp.utils.IVector3ToVector3(o)),a.setOptions({position:o,radius:c}),t(Object.assign(Object.assign({},s),{position:o,radius:c}))):o=n.clone().setY(n.y+1)},g=()=>{var s;this.clearDrawingCanvas3D(),h(),null===(s=null==e?void 0:e.onCancel)||void 0===s||s.call(e)},p=s=>{switch(s.code){case"Escape":g()}},h=()=>{this.ssp.signals.mouseMove.remove(l),this.ssp.signals.click.remove(r),this.ssp.signals.rightClick.remove(g),this.ssp.signals.keyUp.remove(p)};this.ssp.signals.mouseMove.add(l),this.ssp.signals.click.add(r),this.ssp.signals.rightClick.add(g),this.ssp.signals.keyUp.add(p)}))}clearDrawingCanvas3D(){this.ssp.removeCanvas3DById(i.canvas)}},Object.defineProperty(s,"__esModule",{value:!0}),s}({});
1
+ !function(s,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(s="undefined"!=typeof globalThis?globalThis:s||self).DrawingShapePlugin=i()}(this,(function(){"use strict";const s="drawingCanvas",i="drawingPoint",e="drawingLine",t="drawingPolygon",n="drawingCircle";return class{constructor(s){this.ssp=s,this.viewport=s.viewport}drawingPoint(e,t){return new Promise((n=>{this.clearDrawingCanvas3D();const a=new this.ssp.library.Canvas3D({id:s,points:[Object.assign(Object.assign({},e),{id:i})]});this.ssp.manager.store.canvas3DManager.scene.add(a);const o=a.getPoint(i),l=s=>{if(!o)return;const i=this.ssp.viewport.getIntersects(s),e=i.length>0?i[0].point.clone():this.ssp.getPositionByOffset(s);o.setOptions({position:e})},c=s=>{if(p(),!o)return;const i=this.ssp.viewport.getIntersects(s),t=i.length>0?i[0].point.clone():this.ssp.getPositionByOffset(s);o.setOptions({position:t}),n(Object.assign(Object.assign({},e),{position:t.clone()}))},r=()=>{var s;this.clearDrawingCanvas3D(),p(),null===(s=null==t?void 0:t.onCancel)||void 0===s||s.call(t)},g=s=>{switch(s.code){case"Escape":r()}},p=()=>{this.ssp.signals.mouseMove.remove(l),this.ssp.signals.click.remove(c),this.ssp.signals.rightClick.remove(r),this.ssp.signals.keyUp.remove(g)};this.ssp.signals.mouseMove.add(l),this.ssp.signals.click.add(c),this.ssp.signals.rightClick.add(r),this.ssp.signals.keyUp.add(g)}))}drawingLine(i,t){return new Promise((n=>{this.clearDrawingCanvas3D();const a=new this.ssp.library.Canvas3D({id:s,lines:[Object.assign(Object.assign({},i),{points:[],id:e})]});this.ssp.manager.store.canvas3DManager.scene.add(a);const o=a.getLine(e),l=[],c=s=>{const e=this.ssp.viewport.getIntersects(s),t=e.length>0?e[0].point.clone():this.ssp.getPositionByOffset(s);o&&o.setOptions(Object.assign(Object.assign({},i),{points:[...l,t.clone().setY(t.y+1)]}))},r=s=>{const e=this.ssp.viewport.getIntersects(s),t=e.length>0?e[0].point.clone():this.ssp.getPositionByOffset(s);l.push(t.clone().setY(t.y+1)),o&&o.setOptions(Object.assign(Object.assign({},i),{points:l}))},g=()=>{var s;l.pop(),o&&(o.setOptions(Object.assign(Object.assign({},i),{points:l})),null===(s=null==t?void 0:t.onCancelPrev)||void 0===s||s.call(t))},p=()=>{h(),n(Object.assign(Object.assign({},i),{points:l}))},d=s=>{var i;switch(s.code){case"Backspace":g();break;case"Escape":this.clearDrawingCanvas3D(),h(),null===(i=null==t?void 0:t.onCancel)||void 0===i||i.call(t)}},h=()=>{this.ssp.signals.mouseMove.remove(c),this.ssp.signals.click.remove(r),this.ssp.signals.rightClick.remove(g),this.ssp.signals.dblClick.remove(p),this.ssp.signals.keyUp.remove(d)};this.ssp.signals.mouseMove.add(c),this.ssp.signals.click.add(r),this.ssp.signals.rightClick.add(g),this.ssp.signals.dblClick.add(p),this.ssp.signals.keyUp.add(d)}))}drawingPolygon(i,e){return new Promise((n=>{this.clearDrawingCanvas3D();const a=new this.ssp.library.Canvas3D({id:s,polygons:[Object.assign(Object.assign({},i),{points:[],yHeight:0,id:t})]});this.ssp.manager.store.canvas3DManager.scene.add(a);const o=a.getPolygon(t),l=[],c=s=>{var e;const t=this.ssp.viewport.getIntersects(s),n=t.length>0?t[0].point.clone():this.ssp.getPositionByOffset(s);o&&o.setOptions(Object.assign(Object.assign({},i),{yHeight:((null===(e=l[0])||void 0===e?void 0:e.y)||n.y)+1,points:[...l,n]}))},r=s=>{var e;const t=this.ssp.viewport.getIntersects(s),n=t.length>0?t[0].point.clone():this.ssp.getPositionByOffset(s);l.push(n),o&&o.setOptions(Object.assign(Object.assign({},i),{yHeight:((null===(e=l[0])||void 0===e?void 0:e.y)||0)+1,points:l}))},g=()=>{var s,t;l.pop(),o&&(o.setOptions(Object.assign(Object.assign({},i),{yHeight:((null===(s=l[0])||void 0===s?void 0:s.y)||0)+1,points:l})),null===(t=null==e?void 0:e.onCancelPrev)||void 0===t||t.call(e))},p=()=>{var s;h(),n(Object.assign(Object.assign({},i),{yHeight:((null===(s=l[0])||void 0===s?void 0:s.y)||0)+1,points:l}))},d=s=>{var i;switch(s.code){case"Backspace":g();break;case"Escape":this.clearDrawingCanvas3D(),h(),null===(i=null==e?void 0:e.onCancel)||void 0===i||i.call(e)}},h=()=>{this.ssp.signals.mouseMove.remove(c),this.ssp.signals.click.remove(r),this.ssp.signals.rightClick.remove(g),this.ssp.signals.dblClick.remove(p),this.ssp.signals.keyUp.remove(d)};this.ssp.signals.mouseMove.add(c),this.ssp.signals.click.add(r),this.ssp.signals.rightClick.add(g),this.ssp.signals.dblClick.add(p),this.ssp.signals.keyUp.add(d)}))}drawingCircle(i,e){return new Promise((t=>{this.clearDrawingCanvas3D();const a=new this.ssp.library.Canvas3D({id:s,circles:[Object.assign(Object.assign({},i),{id:n})]});this.ssp.manager.store.canvas3DManager.scene.add(a);const o=a.getCircle(n);let l,c=100;const r=s=>{if(!o||!l)return;const i=this.ssp.viewport.getIntersects(s),e=i.length>0?i[0].point.clone():this.ssp.getPositionByOffset(s);c=e.distanceTo(l),o.setOptions({position:l,radius:c})},g=s=>{if(!o)return;const e=this.ssp.viewport.getIntersects(s),n=e.length>0?e[0].point.clone():this.ssp.getPositionByOffset(s);l?(h(),c=n.distanceTo(this.ssp.utils.IVector3ToVector3(l)),o.setOptions({position:l,radius:c}),t(Object.assign(Object.assign({},i),{position:l,radius:c}))):l=n.clone().setY(n.y+1)},p=()=>{var s;this.clearDrawingCanvas3D(),h(),null===(s=null==e?void 0:e.onCancel)||void 0===s||s.call(e)},d=s=>{switch(s.code){case"Escape":p()}},h=()=>{this.ssp.signals.mouseMove.remove(r),this.ssp.signals.click.remove(g),this.ssp.signals.rightClick.remove(p),this.ssp.signals.keyUp.remove(d)};this.ssp.signals.mouseMove.add(r),this.ssp.signals.click.add(g),this.ssp.signals.rightClick.add(p),this.ssp.signals.keyUp.add(d)}))}clearDrawingCanvas3D(){this.ssp.removeCanvas3DById(s)}}}));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@soonspacejs/plugin-drawing-shape",
3
3
  "pluginName": "DrawingShapePlugin",
4
- "version": "2.3.11",
4
+ "version": "2.3.14",
5
5
  "description": "DrawingShapePlugin 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": "d0b82192a8e34fb4f01114c2c43d31901ef4ef3d"
16
+ "gitHead": "f9b1a052ef325608ab69e27efee8bcd625496dd4"
17
17
  }
package/src/index.ts CHANGED
@@ -1,5 +1,6 @@
1
- import SoonSpace, { Position, SetOptionsPointInfo, SetOptionsLineInfo, SetOptionsPolygonInfo, SetOptionsCircleInfo } from 'soonspacejs';
2
- import { Vector3 } from 'three'
1
+ import SoonSpace, { Position, } from 'soonspacejs'
2
+ import { SetOptionsPointInfo, SetOptionsLineInfo, SetOptionsPolygonInfo, SetOptionsCircleInfo, } from 'soonspacejs/src/Library'
3
+ import { Vector3, } from 'three'
3
4
 
4
5
  export type DrawingPointInfo = SetOptionsPointInfo
5
6
  export interface DrawingPointEvents {
@@ -24,7 +25,7 @@ export interface DrawingCircleEvents {
24
25
  }
25
26
 
26
27
 
27
- export const DrawingIds = {
28
+ const DrawingIds = {
28
29
  canvas: 'drawingCanvas',
29
30
  point: 'drawingPoint',
30
31
  line: 'drawingLine',
@@ -36,382 +37,445 @@ export default class DrawIngShapePlugin {
36
37
 
37
38
  readonly viewport: SoonSpace['viewport']
38
39
 
39
- constructor(readonly ssp: SoonSpace) {
40
+ constructor( readonly ssp: SoonSpace ) {
41
+
40
42
  this.viewport = ssp.viewport
43
+
41
44
  }
42
45
 
43
- drawingPoint(options: DrawingPointInfo, events?: DrawingPointEvents): Promise<SetOptionsPointInfo> {
46
+ drawingPoint( options: DrawingPointInfo, events?: DrawingPointEvents ): Promise<SetOptionsPointInfo> {
44
47
 
45
- return new Promise((resolve) => {
48
+ return new Promise( ( resolve ) => {
46
49
 
47
50
  this.clearDrawingCanvas3D()
48
51
 
49
- const canvas = new this.ssp.library.Canvas3D({
52
+ const canvas = new this.ssp.library.Canvas3D( {
50
53
  id: DrawingIds.canvas,
51
- points: [{
54
+ points: [ {
52
55
  ...options,
53
- id: DrawingIds.point
54
- }]
55
- })
56
+ id: DrawingIds.point,
57
+ } ],
58
+ } )
59
+
60
+ this.ssp.manager.store.canvas3DManager.scene.add( canvas )
61
+
62
+ const point = canvas.getPoint( DrawingIds.point )
56
63
 
57
- this.ssp.manager.store.canvas3DManager.scene.add(canvas)
64
+ const onMouseMove = ( event: MouseEvent ) => {
58
65
 
59
- const point = canvas.getPoint(DrawingIds.point)
66
+ if ( !point ) return
60
67
 
61
- const onMouseMove = (event: MouseEvent) => {
62
- if (!point) return
68
+ const intersects = this.ssp.viewport.getIntersects( event )
69
+ const position = intersects.length > 0 ? intersects[ 0 ].point.clone() : this.ssp.getPositionByOffset( event )
63
70
 
64
- const intersects = this.ssp.viewport.getIntersects(event)
65
- const position = intersects.length > 0 ? intersects[0].point.clone() : this.ssp.getPositionByOffset(event)
66
- point.setOptions({
67
- position
68
- })
71
+ point.setOptions( {
72
+ position,
73
+ } )
74
+
69
75
  }
70
76
 
71
- const onClick = (event: MouseEvent) => {
77
+ const onClick = ( event: MouseEvent ) => {
78
+
72
79
  removeSignals()
73
80
 
74
- if (!point) return
81
+ if ( !point ) return
75
82
 
76
- const intersects = this.ssp.viewport.getIntersects(event)
77
- const position = intersects.length > 0 ? intersects[0].point.clone() : this.ssp.getPositionByOffset(event)
83
+ const intersects = this.ssp.viewport.getIntersects( event )
84
+ const position = intersects.length > 0 ? intersects[ 0 ].point.clone() : this.ssp.getPositionByOffset( event )
78
85
 
79
- point.setOptions({
80
- position
81
- })
86
+ point.setOptions( {
87
+ position,
88
+ } )
82
89
 
83
- resolve({
90
+ resolve( {
84
91
  ...options,
85
- position: position.clone()
86
- })
92
+ position: position.clone(),
93
+ } )
94
+
87
95
  }
88
96
 
89
97
  const onRightClick = () => {
98
+
90
99
  this.clearDrawingCanvas3D()
91
100
  removeSignals()
92
101
 
93
102
  events?.onCancel?.()
103
+
94
104
  }
95
105
 
96
- const onKeyUp = (event: KeyboardEvent) => {
97
- switch (event.code) {
98
- case 'Escape':
99
- onRightClick();
100
- break;
106
+ const onKeyUp = ( event: KeyboardEvent ) => {
107
+
108
+ switch ( event.code ) {
109
+
110
+ case 'Escape':
111
+ onRightClick()
112
+ break
113
+
101
114
  }
115
+
102
116
  }
103
117
 
104
118
  const removeSignals = () => {
105
- this.ssp.signals.mouseMove.remove(onMouseMove)
106
- this.ssp.signals.click.remove(onClick)
107
- this.ssp.signals.rightClick.remove(onRightClick)
108
- this.ssp.signals.keyUp.remove(onKeyUp)
119
+
120
+ this.ssp.signals.mouseMove.remove( onMouseMove )
121
+ this.ssp.signals.click.remove( onClick )
122
+ this.ssp.signals.rightClick.remove( onRightClick )
123
+ this.ssp.signals.keyUp.remove( onKeyUp )
124
+
109
125
  }
110
126
 
111
- this.ssp.signals.mouseMove.add(onMouseMove)
112
- this.ssp.signals.click.add(onClick)
113
- this.ssp.signals.rightClick.add(onRightClick)
114
- this.ssp.signals.keyUp.add(onKeyUp)
115
- })
127
+ this.ssp.signals.mouseMove.add( onMouseMove )
128
+ this.ssp.signals.click.add( onClick )
129
+ this.ssp.signals.rightClick.add( onRightClick )
130
+ this.ssp.signals.keyUp.add( onKeyUp )
131
+
132
+ } )
116
133
 
117
134
  }
118
135
 
119
- drawingLine(options: DrawingLineInfo, events?: DrawingLineEvents): Promise<SetOptionsLineInfo> {
136
+ drawingLine( options: DrawingLineInfo, events?: DrawingLineEvents ): Promise<SetOptionsLineInfo> {
120
137
 
121
- return new Promise((resolve) => {
138
+ return new Promise( ( resolve ) => {
122
139
 
123
140
  this.clearDrawingCanvas3D()
124
141
 
125
- const canvas = new this.ssp.library.Canvas3D({
142
+ const canvas = new this.ssp.library.Canvas3D( {
126
143
  id: DrawingIds.canvas,
127
- lines: [{
144
+ lines: [ {
128
145
  ...options,
129
146
  points: [],
130
- id: DrawingIds.line
131
- }]
132
- })
147
+ id: DrawingIds.line,
148
+ } ],
149
+ } )
133
150
 
134
- this.ssp.manager.store.canvas3DManager.scene.add(canvas)
151
+ this.ssp.manager.store.canvas3DManager.scene.add( canvas )
135
152
 
136
- const line = canvas.getLine(DrawingIds.line)
153
+ const line = canvas.getLine( DrawingIds.line )
137
154
  const linePoints: Position[] = []
138
155
 
139
- const onMouseMove = (event: MouseEvent) => {
140
- const intersects = this.ssp.viewport.getIntersects(event)
141
- const position = intersects.length > 0 ? intersects[0].point.clone() : this.ssp.getPositionByOffset(event)
156
+ const onMouseMove = ( event: MouseEvent ) => {
157
+
158
+ const intersects = this.ssp.viewport.getIntersects( event )
159
+ const position = intersects.length > 0 ? intersects[ 0 ].point.clone() : this.ssp.getPositionByOffset( event )
142
160
 
143
- if (!line) return
161
+ if ( !line ) return
144
162
 
145
- line.setOptions({
163
+ line.setOptions( {
146
164
  ...options,
147
- points: [...linePoints, position.clone().setY(position.y + 1)]
148
- })
165
+ points: [ ...linePoints, position.clone().setY( position.y + 1 ) ],
166
+ } )
167
+
149
168
  }
150
169
 
151
- const onClick = (event: MouseEvent) => {
152
- const intersects = this.ssp.viewport.getIntersects(event)
153
- const position = intersects.length > 0 ? intersects[0].point.clone() : this.ssp.getPositionByOffset(event)
170
+ const onClick = ( event: MouseEvent ) => {
171
+
172
+ const intersects = this.ssp.viewport.getIntersects( event )
173
+ const position = intersects.length > 0 ? intersects[ 0 ].point.clone() : this.ssp.getPositionByOffset( event )
154
174
 
155
- linePoints.push(position.clone().setY(position.y + 1))
175
+ linePoints.push( position.clone().setY( position.y + 1 ) )
156
176
 
157
- if (!line) return
177
+ if ( !line ) return
158
178
 
159
- line.setOptions({
179
+ line.setOptions( {
160
180
  ...options,
161
- points: linePoints
162
- })
181
+ points: linePoints,
182
+ } )
183
+
163
184
  }
164
185
 
165
186
  const onRightClick = () => {
187
+
166
188
  linePoints.pop()
167
189
 
168
- if (!line) return
190
+ if ( !line ) return
169
191
 
170
- line.setOptions({
192
+ line.setOptions( {
171
193
  ...options,
172
- points: linePoints
173
- })
194
+ points: linePoints,
195
+ } )
174
196
 
175
197
  events?.onCancelPrev?.()
198
+
176
199
  }
177
200
 
178
201
  const onDblClick = () => {
202
+
179
203
  removeSignals()
180
204
 
181
- resolve({
205
+ resolve( {
182
206
  ...options,
183
- points: linePoints
184
- })
207
+ points: linePoints,
208
+ } )
209
+
185
210
  }
186
211
 
187
- const onKeyUp = (event: KeyboardEvent) => {
188
- switch (event.code) {
189
- case 'Backspace':
190
- onRightClick();
191
- break;
192
- case 'Escape':
193
- this.clearDrawingCanvas3D()
194
- removeSignals()
195
-
196
- events?.onCancel?.()
197
- break;
212
+ const onKeyUp = ( event: KeyboardEvent ) => {
213
+
214
+ switch ( event.code ) {
215
+
216
+ case 'Backspace':
217
+ onRightClick()
218
+ break
219
+ case 'Escape':
220
+ this.clearDrawingCanvas3D()
221
+ removeSignals()
222
+
223
+ events?.onCancel?.()
224
+ break
225
+
198
226
  }
227
+
199
228
  }
200
229
 
201
230
  const removeSignals = () => {
202
- this.ssp.signals.mouseMove.remove(onMouseMove)
203
- this.ssp.signals.click.remove(onClick)
204
- this.ssp.signals.rightClick.remove(onRightClick)
205
- this.ssp.signals.dblClick.remove(onDblClick)
206
- this.ssp.signals.keyUp.remove(onKeyUp)
231
+
232
+ this.ssp.signals.mouseMove.remove( onMouseMove )
233
+ this.ssp.signals.click.remove( onClick )
234
+ this.ssp.signals.rightClick.remove( onRightClick )
235
+ this.ssp.signals.dblClick.remove( onDblClick )
236
+ this.ssp.signals.keyUp.remove( onKeyUp )
237
+
207
238
  }
208
239
 
209
- this.ssp.signals.mouseMove.add(onMouseMove)
210
- this.ssp.signals.click.add(onClick)
211
- this.ssp.signals.rightClick.add(onRightClick)
212
- this.ssp.signals.dblClick.add(onDblClick)
213
- this.ssp.signals.keyUp.add(onKeyUp)
214
- })
240
+ this.ssp.signals.mouseMove.add( onMouseMove )
241
+ this.ssp.signals.click.add( onClick )
242
+ this.ssp.signals.rightClick.add( onRightClick )
243
+ this.ssp.signals.dblClick.add( onDblClick )
244
+ this.ssp.signals.keyUp.add( onKeyUp )
245
+
246
+ } )
215
247
 
216
248
  }
217
249
 
218
- drawingPolygon(options: DrawingPolygonInfo, events?: DrawingPolygonEvents): Promise<SetOptionsPolygonInfo> {
250
+ drawingPolygon( options: DrawingPolygonInfo, events?: DrawingPolygonEvents ): Promise<SetOptionsPolygonInfo> {
219
251
 
220
- return new Promise((resolve) => {
252
+ return new Promise( ( resolve ) => {
221
253
 
222
254
  this.clearDrawingCanvas3D()
223
255
 
224
- const canvas = new this.ssp.library.Canvas3D({
256
+ const canvas = new this.ssp.library.Canvas3D( {
225
257
  id: DrawingIds.canvas,
226
- polygons: [{
258
+ polygons: [ {
227
259
  ...options,
228
260
  points: [],
229
261
  yHeight: 0,
230
- id: DrawingIds.polygon
231
- }]
232
- })
262
+ id: DrawingIds.polygon,
263
+ } ],
264
+ } )
233
265
 
234
- this.ssp.manager.store.canvas3DManager.scene.add(canvas)
266
+ this.ssp.manager.store.canvas3DManager.scene.add( canvas )
235
267
 
236
- const polygon = canvas.getPolygon(DrawingIds.polygon)
268
+ const polygon = canvas.getPolygon( DrawingIds.polygon )
237
269
 
238
270
  const polygonPoints: Position[] = []
239
271
 
240
- const omMouseMove = (event: MouseEvent) => {
241
- const intersects = this.ssp.viewport.getIntersects(event)
242
- const position = intersects.length > 0 ? intersects[0].point.clone() : this.ssp.getPositionByOffset(event)
272
+ const omMouseMove = ( event: MouseEvent ) => {
273
+
274
+ const intersects = this.ssp.viewport.getIntersects( event )
275
+ const position = intersects.length > 0 ? intersects[ 0 ].point.clone() : this.ssp.getPositionByOffset( event )
243
276
 
244
- if (!polygon) return
277
+ if ( !polygon ) return
245
278
 
246
- polygon.setOptions({
279
+ polygon.setOptions( {
247
280
  ...options,
248
- yHeight: (polygonPoints[0]?.y || position.y) + 1,
249
- points: [...polygonPoints, position]
250
- })
281
+ yHeight: ( polygonPoints[ 0 ]?.y || position.y ) + 1,
282
+ points: [ ...polygonPoints, position ],
283
+ } )
284
+
251
285
  }
252
286
 
253
- const onClick = (event: MouseEvent) => {
254
- const intersects = this.ssp.viewport.getIntersects(event)
255
- const position = intersects.length > 0 ? intersects[0].point.clone() : this.ssp.getPositionByOffset(event)
287
+ const onClick = ( event: MouseEvent ) => {
288
+
289
+ const intersects = this.ssp.viewport.getIntersects( event )
290
+ const position = intersects.length > 0 ? intersects[ 0 ].point.clone() : this.ssp.getPositionByOffset( event )
256
291
 
257
- polygonPoints.push(position)
292
+ polygonPoints.push( position )
258
293
 
259
- if (!polygon) return
294
+ if ( !polygon ) return
260
295
 
261
- polygon.setOptions({
296
+ polygon.setOptions( {
262
297
  ...options,
263
- yHeight: (polygonPoints[0]?.y || 0) + 1,
264
- points: polygonPoints
265
- })
298
+ yHeight: ( polygonPoints[ 0 ]?.y || 0 ) + 1,
299
+ points: polygonPoints,
300
+ } )
301
+
266
302
  }
267
303
 
268
304
  const onRightClick = () => {
305
+
269
306
  polygonPoints.pop()
270
307
 
271
- if (!polygon) return
308
+ if ( !polygon ) return
272
309
 
273
- polygon.setOptions({
310
+ polygon.setOptions( {
274
311
  ...options,
275
- yHeight: (polygonPoints[0]?.y || 0) + 1,
276
- points: polygonPoints
277
- })
312
+ yHeight: ( polygonPoints[ 0 ]?.y || 0 ) + 1,
313
+ points: polygonPoints,
314
+ } )
278
315
 
279
316
  events?.onCancelPrev?.()
317
+
280
318
  }
281
319
 
282
320
  const onDblClick = () => {
321
+
283
322
  removeSignals()
284
323
 
285
- resolve({
324
+ resolve( {
286
325
  ...options,
287
- yHeight: (polygonPoints[0]?.y || 0) + 1,
288
- points: polygonPoints
289
- })
326
+ yHeight: ( polygonPoints[ 0 ]?.y || 0 ) + 1,
327
+ points: polygonPoints,
328
+ } )
329
+
290
330
  }
291
331
 
292
- const onKeyUp = (event: KeyboardEvent) => {
293
- switch (event.code) {
294
- case 'Backspace':
295
- onRightClick();
296
- break;
297
- case 'Escape':
298
- this.clearDrawingCanvas3D()
299
- removeSignals()
300
-
301
- events?.onCancel?.()
302
- break;
332
+ const onKeyUp = ( event: KeyboardEvent ) => {
333
+
334
+ switch ( event.code ) {
335
+
336
+ case 'Backspace':
337
+ onRightClick()
338
+ break
339
+ case 'Escape':
340
+ this.clearDrawingCanvas3D()
341
+ removeSignals()
342
+
343
+ events?.onCancel?.()
344
+ break
345
+
303
346
  }
347
+
304
348
  }
305
349
 
306
350
  const removeSignals = () => {
307
- this.ssp.signals.mouseMove.remove(omMouseMove)
308
- this.ssp.signals.click.remove(onClick)
309
- this.ssp.signals.rightClick.remove(onRightClick)
310
- this.ssp.signals.dblClick.remove(onDblClick)
311
- this.ssp.signals.keyUp.remove(onKeyUp)
351
+
352
+ this.ssp.signals.mouseMove.remove( omMouseMove )
353
+ this.ssp.signals.click.remove( onClick )
354
+ this.ssp.signals.rightClick.remove( onRightClick )
355
+ this.ssp.signals.dblClick.remove( onDblClick )
356
+ this.ssp.signals.keyUp.remove( onKeyUp )
357
+
312
358
  }
313
359
 
314
- this.ssp.signals.mouseMove.add(omMouseMove)
315
- this.ssp.signals.click.add(onClick)
316
- this.ssp.signals.rightClick.add(onRightClick)
317
- this.ssp.signals.dblClick.add(onDblClick)
318
- this.ssp.signals.keyUp.add(onKeyUp)
319
- })
360
+ this.ssp.signals.mouseMove.add( omMouseMove )
361
+ this.ssp.signals.click.add( onClick )
362
+ this.ssp.signals.rightClick.add( onRightClick )
363
+ this.ssp.signals.dblClick.add( onDblClick )
364
+ this.ssp.signals.keyUp.add( onKeyUp )
365
+
366
+ } )
320
367
 
321
368
  }
322
369
 
323
- drawingCircle(options: DrawingCircleInfo, events?: DrawingCircleEvents): Promise<SetOptionsCircleInfo> {
370
+ drawingCircle( options: DrawingCircleInfo, events?: DrawingCircleEvents ): Promise<SetOptionsCircleInfo> {
324
371
 
325
- return new Promise((resolve) => {
372
+ return new Promise( ( resolve ) => {
326
373
 
327
374
  this.clearDrawingCanvas3D()
328
375
 
329
- const canvas = new this.ssp.library.Canvas3D({
376
+ const canvas = new this.ssp.library.Canvas3D( {
330
377
  id: DrawingIds.canvas,
331
- circles: [{
378
+ circles: [ {
332
379
  ...options,
333
- id: DrawingIds.circle
334
- }]
335
- })
380
+ id: DrawingIds.circle,
381
+ } ],
382
+ } )
336
383
 
337
- this.ssp.manager.store.canvas3DManager.scene.add(canvas)
384
+ this.ssp.manager.store.canvas3DManager.scene.add( canvas )
338
385
 
339
- const circle = canvas.getCircle(DrawingIds.circle)
386
+ const circle = canvas.getCircle( DrawingIds.circle )
340
387
 
341
388
  let position: Vector3 | null
342
- let radius: number = 100
389
+ let radius = 100
390
+
391
+ const onMouseMove = ( event: MouseEvent ) => {
343
392
 
344
- const onMouseMove = (event: MouseEvent) => {
345
- if (!circle || !position) return
393
+ if ( !circle || !position ) return
346
394
 
347
- const intersects = this.ssp.viewport.getIntersects(event)
348
- const mouseMovePosition = intersects.length > 0 ? intersects[0].point.clone() : this.ssp.getPositionByOffset(event)
395
+ const intersects = this.ssp.viewport.getIntersects( event )
396
+ const mouseMovePosition = intersects.length > 0 ? intersects[ 0 ].point.clone() : this.ssp.getPositionByOffset( event )
349
397
 
350
- radius = mouseMovePosition.distanceTo(position)
398
+ radius = mouseMovePosition.distanceTo( position )
351
399
 
352
- circle.setOptions({
400
+ circle.setOptions( {
353
401
  position,
354
- radius
355
- })
402
+ radius,
403
+ } )
404
+
356
405
  }
357
406
 
358
- const onClick = (event: MouseEvent) => {
359
- if (!circle) return
407
+ const onClick = ( event: MouseEvent ) => {
408
+
409
+ if ( !circle ) return
360
410
 
361
- const intersects = this.ssp.viewport.getIntersects(event)
362
- const mouseMovePosition = intersects.length > 0 ? intersects[0].point.clone() : this.ssp.getPositionByOffset(event)
411
+ const intersects = this.ssp.viewport.getIntersects( event )
412
+ const mouseMovePosition = intersects.length > 0 ? intersects[ 0 ].point.clone() : this.ssp.getPositionByOffset( event )
363
413
 
364
- if (!position) position = mouseMovePosition.clone().setY(mouseMovePosition.y + 1)
414
+ if ( !position ) position = mouseMovePosition.clone().setY( mouseMovePosition.y + 1 )
365
415
  else {
416
+
366
417
  removeSignals()
367
418
 
368
- radius = mouseMovePosition.distanceTo(this.ssp.utils.IVector3ToVector3(position))
419
+ radius = mouseMovePosition.distanceTo( this.ssp.utils.IVector3ToVector3( position ) )
369
420
 
370
- circle.setOptions({
421
+ circle.setOptions( {
371
422
  position,
372
- radius
373
- })
423
+ radius,
424
+ } )
374
425
 
375
- resolve({
426
+ resolve( {
376
427
  ...options,
377
428
  position,
378
- radius
379
- })
429
+ radius,
430
+ } )
431
+
380
432
  }
433
+
381
434
  }
382
435
 
383
436
  const onRightClick = () => {
437
+
384
438
  this.clearDrawingCanvas3D()
385
439
  removeSignals()
386
440
 
387
441
  events?.onCancel?.()
442
+
388
443
  }
389
444
 
390
- const onKeyUp = (event: KeyboardEvent) => {
391
- switch (event.code) {
392
- case 'Escape':
393
- onRightClick();
394
- break;
445
+ const onKeyUp = ( event: KeyboardEvent ) => {
446
+
447
+ switch ( event.code ) {
448
+
449
+ case 'Escape':
450
+ onRightClick()
451
+ break
452
+
395
453
  }
454
+
396
455
  }
397
456
 
398
457
  const removeSignals = () => {
399
- this.ssp.signals.mouseMove.remove(onMouseMove)
400
- this.ssp.signals.click.remove(onClick)
401
- this.ssp.signals.rightClick.remove(onRightClick)
402
- this.ssp.signals.keyUp.remove(onKeyUp)
458
+
459
+ this.ssp.signals.mouseMove.remove( onMouseMove )
460
+ this.ssp.signals.click.remove( onClick )
461
+ this.ssp.signals.rightClick.remove( onRightClick )
462
+ this.ssp.signals.keyUp.remove( onKeyUp )
463
+
403
464
  }
404
465
 
405
- this.ssp.signals.mouseMove.add(onMouseMove)
406
- this.ssp.signals.click.add(onClick)
407
- this.ssp.signals.rightClick.add(onRightClick)
408
- this.ssp.signals.keyUp.add(onKeyUp)
409
- })
466
+ this.ssp.signals.mouseMove.add( onMouseMove )
467
+ this.ssp.signals.click.add( onClick )
468
+ this.ssp.signals.rightClick.add( onRightClick )
469
+ this.ssp.signals.keyUp.add( onKeyUp )
470
+
471
+ } )
410
472
 
411
473
  }
412
474
 
413
475
  clearDrawingCanvas3D(): void {
414
- this.ssp.removeCanvas3DById(DrawingIds.canvas)
476
+
477
+ this.ssp.removeCanvas3DById( DrawingIds.canvas )
478
+
415
479
  }
416
480
 
417
481
  }