@soonspacejs/plugin-drawing-shape 2.11.40 → 2.11.42

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,6 +1,6 @@
1
1
  import SoonSpace from 'soonspacejs';
2
2
  import type { SetOptionsPointInfo, SetOptionsLineInfo, SetOptionsPolygonInfo, SetOptionsCircleInfo } from 'soonspacejs/types/Library';
3
- import type { Object3D } from 'three';
3
+ import type { Vector3, Object3D } from 'three';
4
4
  export type DrawingPointInfo = SetOptionsPointInfo;
5
5
  export interface DrawingPointEvents {
6
6
  onCancel?: () => void;
@@ -37,9 +37,13 @@ export default class DrawIngShapePlugin {
37
37
  drawingLayer: number;
38
38
  configLayer(drawingObj: Object3D[] | Object3D): void;
39
39
  recoverLayer(drawingObj: Object3D[] | Object3D): void;
40
- drawingPoint(options: DrawingPointInfo, events?: DrawingPointEvents): Promise<SetOptionsPointInfo>;
40
+ drawingPoint(options: DrawingPointInfo, events?: DrawingPointEvents): Promise<SetOptionsPointInfo & {
41
+ position: Vector3;
42
+ }>;
41
43
  drawingLine(options: DrawingLineInfo, events?: DrawingLineEvents): Promise<SetOptionsLineInfo>;
42
44
  drawingPolygon(options: DrawingPolygonInfo, events?: DrawingPolygonEvents): Promise<SetOptionsPolygonInfo>;
43
- drawingCircle(options: DrawingCircleInfo, events?: DrawingCircleEvents): Promise<SetOptionsCircleInfo>;
45
+ drawingCircle(options: DrawingCircleInfo, events?: DrawingCircleEvents): Promise<SetOptionsCircleInfo & {
46
+ position: Vector3;
47
+ }>;
44
48
  clearDrawingCanvas3D(): void;
45
49
  }
package/dist/index.esm.js CHANGED
@@ -1 +1 @@
1
- import s from"soonspacejs";const{utils:i}=s,t={canvas:"drawingCanvas"+i.randomString(),point:"drawingPoint"+i.randomString(),line:"drawingLine"+i.randomString(),polygon:"drawingPolygon"+i.randomString(),circle:"drawingCircle"+i.randomString()};class e{constructor(s){this.ssp=s,this.drawingLayer=21,this.viewport=s.viewport}getFirstIntersect(s,i){const t=(Array.isArray(i)?i:i?[i]:[]).filter((s=>s));this.configLayer(t);const e=this.ssp.viewport.getIntersects(s);return this.recoverLayer(t),e[0]}configLayer(s){var i;const t=null!==(i=this.drawingLayer)&&void 0!==i?i:21,e=this.ssp.viewport.camera;e.oriMask=e.layers.mask,e.layers.enable(t);const n=Array.isArray(s)?s:[s];for(const s of n)s.oriMask=s.layers.mask,s.layers.set(t)}recoverLayer(s){const i=this.ssp.viewport.camera;i.oriMask&&(i.layers.mask=i.oriMask,i.oriMask=void 0);const t=Array.isArray(s)?s:[s];for(const s of t){const i=s.oriMask;i&&(s.layers.mask=i,s.oriMask=void 0)}}drawingPoint(s,i){return new Promise(((e,n)=>{this.clearDrawingCanvas3D();const o=this.ssp.createCanvas3D({id:t.canvas,points:[Object.assign(Object.assign({},s),{id:t.point})]});this.ssp.addObject(o);const a=o.getPoint(t.point);if(!a)return n();const c=s=>{if(!a)return;const i=this.getFirstIntersect(s,a),t=i?i.point.clone():this.ssp.getPositionByOffset(s);a.setOptions({position:t})},r=i=>{if(p(),!a)return;const t=this.getFirstIntersect(i,a),n=t?t.point.clone():this.ssp.getPositionByOffset(i);a.setOptions({position:n}),e(Object.assign(Object.assign({},s),{position:n.clone()}))},l=()=>{var s;this.clearDrawingCanvas3D(),p(),null===(s=null==i?void 0:i.onCancel)||void 0===s||s.call(i)},g=s=>{if("Escape"===s.code)l()},p=()=>{this.ssp.signals.mouseMove.remove(c),this.ssp.signals.click.remove(r),this.ssp.signals.rightClick.remove(l),this.ssp.signals.keyUp.remove(g)};this.ssp.signals.mouseMove.add(c),this.ssp.signals.click.add(r),this.ssp.signals.rightClick.add(l),this.ssp.signals.keyUp.add(g)}))}drawingLine(s,i){const{offsetY:e=.01}=s;return new Promise((n=>{this.clearDrawingCanvas3D();const o=this.ssp.createCanvas3D({id:t.canvas,lines:[Object.assign(Object.assign({},s),{points:[],id:t.line})]});this.ssp.addObject(o);const a=o.getLine(t.line),c=[],r=i=>{const t=this.getFirstIntersect(i,a),n=t?t.point.clone():this.ssp.getPositionByOffset(i);a&&a.setOptions(Object.assign(Object.assign({},s),{points:[...c,n.clone().setY(n.y+e)]}))},l=i=>{const t=this.getFirstIntersect(i,a),n=t?t.point.clone():this.ssp.getPositionByOffset(i);c.push(n.clone().setY(n.y+e)),a&&a.setOptions(Object.assign(Object.assign({},s),{points:c}))},g=()=>{var t;c.pop(),a&&(a.setOptions(Object.assign(Object.assign({},s),{points:c})),null===(t=null==i?void 0:i.onCancelPrev)||void 0===t||t.call(i))},p=i=>{const t=this.getFirstIntersect(i,a),o=t?t.point.clone():this.ssp.getPositionByOffset(i);c.push(o.clone().setY(o.y+e)),h(),n(Object.assign(Object.assign({},s),{points:c}))},d=s=>{var t;switch(s.code){case"Backspace":g();break;case"Escape":this.clearDrawingCanvas3D(),h(),null===(t=null==i?void 0:i.onCancel)||void 0===t||t.call(i)}},h=()=>{this.ssp.signals.mouseMove.remove(r),this.ssp.signals.click.remove(l),this.ssp.signals.rightClick.remove(g),this.ssp.signals.dblClick.remove(p),this.ssp.signals.keyUp.remove(d)};this.ssp.signals.mouseMove.add(r),this.ssp.signals.click.add(l),this.ssp.signals.rightClick.add(g),this.ssp.signals.dblClick.add(p),this.ssp.signals.keyUp.add(d)}))}drawingPolygon(s,i){const{offsetY:e=.01}=s;return new Promise((n=>{this.clearDrawingCanvas3D();const o=this.ssp.createCanvas3D({id:t.canvas,polygons:[Object.assign(Object.assign({points:[],yHeight:0},s),{id:t.polygon})],lines:[Object.assign(Object.assign({points:[],width:2},s),{id:t.line})]});this.ssp.addObject(o);const a=o.getPolygon(t.polygon),c=o.getLine(t.line),r=[],l=s=>{var i;const n=this.getFirstIntersect(s,[c,a]),l=n?n.point.clone():this.ssp.getPositionByOffset(s);if(!a)return;const g=[...r,l];g.length>2?o.removeLine(t.line):null==c||c.setOptions({points:g}),a.setOptions({yHeight:((null===(i=r[0])||void 0===i?void 0:i.y)||l.y)+e,points:g})},g=i=>{var t;const n=this.getFirstIntersect(i,[c,a]),o=n?n.point.clone():this.ssp.getPositionByOffset(i);r.push(o.clone().setY(o.y+e)),a&&a.setOptions(Object.assign(Object.assign({},s),{yHeight:((null===(t=r[0])||void 0===t?void 0:t.y)||0)+e,points:r}))},p=()=>{var t,n;r.pop(),a&&(a.setOptions(Object.assign(Object.assign({},s),{yHeight:((null===(t=r[0])||void 0===t?void 0:t.y)||0)+e,points:r})),null===(n=null==i?void 0:i.onCancelPrev)||void 0===n||n.call(i))},d=i=>{var t;const o=this.getFirstIntersect(i,[c,a]),l=o?o.point.clone():this.ssp.getPositionByOffset(i);r.push(l.clone().setY(l.y+e)),v(),n(Object.assign(Object.assign({},s),{yHeight:((null===(t=r[0])||void 0===t?void 0:t.y)||0)+e,points:r}))},h=s=>{var t;switch(s.code){case"Backspace":p();break;case"Escape":this.clearDrawingCanvas3D(),v(),null===(t=null==i?void 0:i.onCancel)||void 0===t||t.call(i)}},v=()=>{this.ssp.signals.mouseMove.remove(l),this.ssp.signals.click.remove(g),this.ssp.signals.rightClick.remove(p),this.ssp.signals.dblClick.remove(d),this.ssp.signals.keyUp.remove(h)};this.ssp.signals.mouseMove.add(l),this.ssp.signals.click.add(g),this.ssp.signals.rightClick.add(p),this.ssp.signals.dblClick.add(d),this.ssp.signals.keyUp.add(h)}))}drawingCircle(s,i){const{offsetY:e=.01}=s;return new Promise((n=>{this.clearDrawingCanvas3D();const o=this.ssp.createCanvas3D({id:t.canvas,circles:[Object.assign(Object.assign({},s),{id:t.circle})]});this.ssp.addObject(o);const a=o.getCircle(t.circle);let c,r=100;const l=s=>{if(!a||!c)return;const i=this.getFirstIntersect(s,a),t=i?i.point.clone():this.ssp.getPositionByOffset(s);r=t.distanceTo(c),a.setOptions({position:c,radius:r})},g=i=>{if(!a)return;const t=this.getFirstIntersect(i,a),o=t?t.point.clone():this.ssp.getPositionByOffset(i);c?(h(),r=o.distanceTo(this.ssp.utils.IVector3ToVector3(c)),a.setOptions({position:c,radius:r}),n(Object.assign(Object.assign({},s),{position:c,radius:r}))):c=o.clone().setY(o.y+e)},p=()=>{var s;this.clearDrawingCanvas3D(),h(),null===(s=null==i?void 0:i.onCancel)||void 0===s||s.call(i)},d=s=>{if("Escape"===s.code)p()},h=()=>{this.ssp.signals.mouseMove.remove(l),this.ssp.signals.click.remove(g),this.ssp.signals.rightClick.remove(p),this.ssp.signals.keyUp.remove(d)};this.ssp.signals.mouseMove.add(l),this.ssp.signals.click.add(g),this.ssp.signals.rightClick.add(p),this.ssp.signals.keyUp.add(d)}))}clearDrawingCanvas3D(){this.ssp.removeObjectById(t.canvas)}}export{e as default};
1
+ import s from"soonspacejs";const{utils:i}=s,t={canvas:"drawingCanvas"+i.randomString(),point:"drawingPoint"+i.randomString(),line:"drawingLine"+i.randomString(),polygon:"drawingPolygon"+i.randomString(),circle:"drawingCircle"+i.randomString()};class e{constructor(s){this.ssp=s,this.drawingLayer=21,this.viewport=s.viewport}getFirstIntersect(s,i){const t=(Array.isArray(i)?i:i?[i]:[]).filter((s=>s));this.configLayer(t);const e=this.ssp.viewport.getIntersects(s);return this.recoverLayer(t),e[0]}configLayer(s){var i;const t=null!==(i=this.drawingLayer)&&void 0!==i?i:21,e=this.ssp.viewport.camera;e.oriMask=e.layers.mask,e.layers.enable(t);const n=Array.isArray(s)?s:[s];for(const s of n)s.oriMask=s.layers.mask,s.layers.set(t)}recoverLayer(s){const i=this.ssp.viewport.camera;i.oriMask&&(i.layers.mask=i.oriMask,i.oriMask=void 0);const t=Array.isArray(s)?s:[s];for(const s of t){const i=s.oriMask;i&&(s.layers.mask=i,s.oriMask=void 0)}}drawingPoint(s,i){return new Promise(((e,n)=>{this.clearDrawingCanvas3D();const o=this.ssp.createCanvas3D({id:t.canvas,points:[Object.assign(Object.assign({},s),{id:t.point})]});this.ssp.addObject(o);const a=o.getPoint(t.point);if(!a)return n();const c=s=>{if(!a)return;const i=this.getFirstIntersect(s,a),t=i?i.point.clone():this.ssp.getPositionByOffset(s);a.position.copy(t),this.ssp.render()},r=i=>{if(g(),!a)return;const t=this.getFirstIntersect(i,a),n=t?t.point.clone():this.ssp.getPositionByOffset(i);a.position.copy(n),this.ssp.render(),e(Object.assign(Object.assign({},s),{position:n.clone()}))},l=()=>{var s;this.clearDrawingCanvas3D(),g(),null===(s=null==i?void 0:i.onCancel)||void 0===s||s.call(i)},p=s=>{if("Escape"===s.code)l()},g=()=>{this.ssp.signals.mouseMove.remove(c),this.ssp.signals.click.remove(r),this.ssp.signals.rightClick.remove(l),this.ssp.signals.keyUp.remove(p)};this.ssp.signals.mouseMove.add(c),this.ssp.signals.click.add(r),this.ssp.signals.rightClick.add(l),this.ssp.signals.keyUp.add(p)}))}drawingLine(s,i){const{offsetY:e=.01}=s;return new Promise((n=>{this.clearDrawingCanvas3D();const o=this.ssp.createCanvas3D({id:t.canvas,lines:[Object.assign(Object.assign({},s),{points:[],id:t.line})]});this.ssp.addObject(o);const a=o.getLine(t.line),c=[],r=i=>{const t=this.getFirstIntersect(i,a),n=t?t.point.clone():this.ssp.getPositionByOffset(i);a&&a.setOptions(Object.assign(Object.assign({},s),{points:[...c,n.clone().setY(n.y+e)]}))},l=i=>{const t=this.getFirstIntersect(i,a),n=t?t.point.clone():this.ssp.getPositionByOffset(i);c.push(n.clone().setY(n.y+e)),a&&a.setOptions(Object.assign(Object.assign({},s),{points:c}))},p=()=>{var t;c.pop(),a&&(a.setOptions(Object.assign(Object.assign({},s),{points:c})),null===(t=null==i?void 0:i.onCancelPrev)||void 0===t||t.call(i))},g=i=>{const t=this.getFirstIntersect(i,a),o=t?t.point.clone():this.ssp.getPositionByOffset(i);c.push(o.clone().setY(o.y+e)),h(),n(Object.assign(Object.assign({},s),{points:c}))},d=s=>{var t;switch(s.code){case"Backspace":p();break;case"Escape":this.clearDrawingCanvas3D(),h(),null===(t=null==i?void 0:i.onCancel)||void 0===t||t.call(i)}},h=()=>{this.ssp.signals.mouseMove.remove(r),this.ssp.signals.click.remove(l),this.ssp.signals.rightClick.remove(p),this.ssp.signals.dblClick.remove(g),this.ssp.signals.keyUp.remove(d)};this.ssp.signals.mouseMove.add(r),this.ssp.signals.click.add(l),this.ssp.signals.rightClick.add(p),this.ssp.signals.dblClick.add(g),this.ssp.signals.keyUp.add(d)}))}drawingPolygon(s,i){const{offsetY:e=.01}=s;return new Promise((n=>{this.clearDrawingCanvas3D();const o=this.ssp.createCanvas3D({id:t.canvas,polygons:[Object.assign(Object.assign({points:[],yHeight:0},s),{id:t.polygon})],lines:[Object.assign(Object.assign({points:[],width:2},s),{id:t.line})]});this.ssp.addObject(o);const a=o.getPolygon(t.polygon),c=o.getLine(t.line),r=[],l=s=>{var i;const n=this.getFirstIntersect(s,[c,a]),l=n?n.point.clone():this.ssp.getPositionByOffset(s);if(!a)return;const p=[...r,l];p.length>2?o.removeLine(t.line):null==c||c.setOptions({points:p}),a.setOptions({yHeight:((null===(i=r[0])||void 0===i?void 0:i.y)||l.y)+e,points:p})},p=i=>{var t;const n=this.getFirstIntersect(i,[c,a]),o=n?n.point.clone():this.ssp.getPositionByOffset(i);r.push(o.clone().setY(o.y+e)),a&&a.setOptions(Object.assign(Object.assign({},s),{yHeight:((null===(t=r[0])||void 0===t?void 0:t.y)||0)+e,points:r}))},g=()=>{var t,n;r.pop(),a&&(a.setOptions(Object.assign(Object.assign({},s),{yHeight:((null===(t=r[0])||void 0===t?void 0:t.y)||0)+e,points:r})),null===(n=null==i?void 0:i.onCancelPrev)||void 0===n||n.call(i))},d=i=>{var t;const o=this.getFirstIntersect(i,[c,a]),l=o?o.point.clone():this.ssp.getPositionByOffset(i);r.push(l.clone().setY(l.y+e)),v(),n(Object.assign(Object.assign({},s),{yHeight:((null===(t=r[0])||void 0===t?void 0:t.y)||0)+e,points:r}))},h=s=>{var t;switch(s.code){case"Backspace":g();break;case"Escape":this.clearDrawingCanvas3D(),v(),null===(t=null==i?void 0:i.onCancel)||void 0===t||t.call(i)}},v=()=>{this.ssp.signals.mouseMove.remove(l),this.ssp.signals.click.remove(p),this.ssp.signals.rightClick.remove(g),this.ssp.signals.dblClick.remove(d),this.ssp.signals.keyUp.remove(h)};this.ssp.signals.mouseMove.add(l),this.ssp.signals.click.add(p),this.ssp.signals.rightClick.add(g),this.ssp.signals.dblClick.add(d),this.ssp.signals.keyUp.add(h)}))}drawingCircle(s,i){const{offsetY:e=.01}=s;return new Promise((n=>{this.clearDrawingCanvas3D();const o=this.ssp.createCanvas3D({id:t.canvas,circles:[Object.assign(Object.assign({},s),{id:t.circle})]});this.ssp.addObject(o);const a=o.getCircle(t.circle);let c,r=100;const l=s=>{if(!a||!c)return;const i=this.getFirstIntersect(s,a),t=i?i.point.clone():this.ssp.getPositionByOffset(s);r=t.distanceTo(c),a.setOptions({radius:r}),a.position.copy(c)},p=i=>{if(!a)return;const t=this.getFirstIntersect(i,a),o=t?t.point.clone():this.ssp.getPositionByOffset(i);c?(h(),r=o.distanceTo(this.ssp.utils.IVector3ToVector3(c)),a.setOptions({radius:r}),a.position.copy(c),n(Object.assign(Object.assign({},s),{position:c,radius:r}))):c=o.clone().setY(o.y+e)},g=()=>{var s;this.clearDrawingCanvas3D(),h(),null===(s=null==i?void 0:i.onCancel)||void 0===s||s.call(i)},d=s=>{if("Escape"===s.code)g()},h=()=>{this.ssp.signals.mouseMove.remove(l),this.ssp.signals.click.remove(p),this.ssp.signals.rightClick.remove(g),this.ssp.signals.keyUp.remove(d)};this.ssp.signals.mouseMove.add(l),this.ssp.signals.click.add(p),this.ssp.signals.rightClick.add(g),this.ssp.signals.keyUp.add(d)}))}clearDrawingCanvas3D(){this.ssp.removeObjectById(t.canvas)}}export{e as default};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@soonspacejs/plugin-drawing-shape",
3
3
  "pluginName": "DrawingShapePlugin",
4
- "version": "2.11.40",
4
+ "version": "2.11.42",
5
5
  "description": "DrawingShapePlugin plugin for SoonSpace.js",
6
6
  "main": "dist/index.esm.js",
7
7
  "module": "dist/index.esm.js",
@@ -13,8 +13,8 @@
13
13
  ],
14
14
  "author": "xunwei",
15
15
  "license": "UNLICENSED",
16
- "gitHead": "fb93438e409cbbd6930d3f8218c7c95db92e94d0",
16
+ "gitHead": "cb6da43a1f83c95560e14324e8cc4811557598c3",
17
17
  "peerDependencies": {
18
- "soonspacejs": "2.11.40"
18
+ "soonspacejs": "2.11.42"
19
19
  }
20
20
  }