@soonspacejs/plugin-drawing-topology 2.10.7 → 2.10.9

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,15 +1,19 @@
1
- import SoonSpace, { TopologyInnerNodeInfo } from 'soonspacejs';
1
+ import { Object3D } from 'three';
2
+ import SoonSpace, { TopologyNodeInfo } from 'soonspacejs';
2
3
  import type { Topology, TopologyInfo } from 'soonspacejs/types/Library';
3
4
  export interface StartOptions extends TopologyInfo {
4
5
  onCancel?: () => void;
5
- onDone?: (nodes: TopologyInnerNodeInfo[]) => void;
6
+ onAdd?: (node: TopologyNodeInfo, intersectObject: Object3D) => void;
7
+ onUndo?: (node: TopologyNodeInfo) => void;
8
+ onDone?: (nodes: TopologyNodeInfo[]) => void;
6
9
  }
7
10
  export default class DrawIngTopologyPlugin {
8
11
  readonly ssp: SoonSpace;
9
12
  readonly viewport: SoonSpace['viewport'];
10
- nodes: TopologyInnerNodeInfo[];
13
+ nodes: TopologyNodeInfo[];
11
14
  topology: Topology | null;
12
15
  private mouseDownNode;
16
+ private mouseDownObject;
13
17
  private mouseMoveNode;
14
18
  private options;
15
19
  constructor(ssp: SoonSpace);
@@ -21,5 +25,7 @@ export default class DrawIngTopologyPlugin {
21
25
  private onDblClick;
22
26
  private onRightClick;
23
27
  private onKeyUp;
28
+ private pushNode;
29
+ private popNode;
24
30
  private renderTopology;
25
31
  }
package/dist/index.esm.js CHANGED
@@ -1 +1 @@
1
- class s{constructor(s){this.ssp=s,this.viewport=s.viewport,this.nodes=[],this.topology=null,this.mouseDownNode=null,this.mouseMoveNode=null,this.options={id:"draing_topology",type:"line",nodes:[]},this.onMouseDowm=this.onMouseDowm.bind(this),this.onMouseMove=this.onMouseMove.bind(this),this.onClick=this.onClick.bind(this),this.onDblClick=this.onDblClick.bind(this),this.onRightClick=this.onRightClick.bind(this),this.onKeyUp=this.onKeyUp.bind(this)}start(s){this.options=s,this.ssp.signals.mouseDown.add(this.onMouseDowm),this.ssp.signals.mouseMove.add(this.onMouseMove),this.ssp.signals.click.add(this.onClick),this.ssp.signals.dblClick.add(this.onDblClick),this.ssp.signals.rightClick.add(this.onRightClick),this.ssp.signals.keyUp.add(this.onKeyUp)}stop(){this.nodes=[],this.mouseDownNode=null,this.mouseMoveNode=null,this.options={id:"draing_topology",type:"line",nodes:[]},this.ssp.signals.mouseDown.remove(this.onMouseDowm),this.ssp.signals.mouseMove.remove(this.onMouseMove),this.ssp.signals.click.remove(this.onClick),this.ssp.signals.dblClick.remove(this.onDblClick),this.ssp.signals.rightClick.remove(this.onRightClick),this.ssp.signals.keyUp.remove(this.onKeyUp)}onMouseDowm(s){const o=this.ssp.viewport.getIntersects(s);o[0]&&(this.mouseDownNode={id:`node${this.nodes.length+1}`,name:`node${this.nodes.length+1}`,position:o[0].point.clone().setY(o[0].point.y+.01),graphs:[]})}onMouseMove(s){const o=this.ssp.viewport.getIntersects(s);o[0]&&(this.mouseMoveNode={id:`node${this.nodes.length+1}`,name:`node${this.nodes.length+1}`,position:o[0].point.clone().setY(o[0].point.y),graphs:[]},this.renderTopology([...this.nodes,this.mouseMoveNode]))}onClick(s){this.mouseDownNode&&(this.nodes.push(this.mouseDownNode),this.renderTopology(this.nodes),this.mouseDownNode=null)}onDblClick(s){this.mouseDownNode&&(this.nodes.push(this.mouseDownNode),this.renderTopology(this.nodes),this.mouseDownNode=null,this.options.onDone&&this.options.onDone([...this.nodes]),this.stop())}onRightClick(s){this.nodes.pop(),this.renderTopology(this.nodes)}onKeyUp(s){switch(s.code){case"Backspace":this.nodes.pop(),this.renderTopology(this.nodes);break;case"Enter":this.options.onDone&&this.options.onDone([...this.nodes]),this.renderTopology(this.nodes),this.stop();break;case"Escape":this.options.onCancel&&this.options.onCancel(),this.ssp.removeTopologyById(this.options.id),this.stop()}}renderTopology(s){this.topology?this.ssp.resetTopologyNodes(this.topology,s):this.topology=this.ssp.createTopology(Object.assign(Object.assign({},this.options),{type:"line",nodes:s}))}}export{s as default};
1
+ class s{constructor(s){this.ssp=s,this.nodes=[],this.topology=null,this.mouseDownNode=null,this.mouseDownObject=null,this.mouseMoveNode=null,this.options={id:"draing_topology",type:"line",nodes:[]},this.viewport=s.viewport,this.onMouseDowm=this.onMouseDowm.bind(this),this.onMouseMove=this.onMouseMove.bind(this),this.onClick=this.onClick.bind(this),this.onDblClick=this.onDblClick.bind(this),this.onRightClick=this.onRightClick.bind(this),this.onKeyUp=this.onKeyUp.bind(this)}start(s){this.options=s,this.ssp.signals.mouseDown.add(this.onMouseDowm),this.ssp.signals.mouseMove.add(this.onMouseMove),this.ssp.signals.click.add(this.onClick),this.ssp.signals.dblClick.add(this.onDblClick),this.ssp.signals.rightClick.add(this.onRightClick),this.ssp.signals.keyUp.add(this.onKeyUp)}stop(){this.nodes=[],this.mouseDownNode=null,this.mouseDownObject=null,this.mouseMoveNode=null,this.options={id:"draing_topology",type:"line",nodes:[]},this.ssp.signals.mouseDown.remove(this.onMouseDowm),this.ssp.signals.mouseMove.remove(this.onMouseMove),this.ssp.signals.click.remove(this.onClick),this.ssp.signals.dblClick.remove(this.onDblClick),this.ssp.signals.rightClick.remove(this.onRightClick),this.ssp.signals.keyUp.remove(this.onKeyUp)}onMouseDowm(s){const[o]=this.ssp.viewport.getIntersects(s);if(o){const{object:s,point:i}=o;this.mouseDownNode={id:`node${this.nodes.length+1}`,name:`node${this.nodes.length+1}`,position:i.setY(i.y+.01),graphs:[]},this.mouseDownObject=s}}onMouseMove(s){const[o]=this.ssp.viewport.getIntersects(s);o&&(this.mouseMoveNode={id:`node${this.nodes.length+1}`,name:`node${this.nodes.length+1}`,position:o.point.clone().setY(o.point.y),graphs:[]},this.renderTopology([...this.nodes,this.mouseMoveNode]))}onClick(){this.pushNode()}onDblClick(){var s,o;this.pushNode(),null===(o=(s=this.options).onDone)||void 0===o||o.call(s,[...this.nodes]),this.stop()}onRightClick(s){this.popNode()}onKeyUp(s){var o,i,t,e;switch(s.code){case"Backspace":this.popNode();break;case"Enter":this.renderTopology(this.nodes),null===(i=(o=this.options).onDone)||void 0===i||i.call(o,[...this.nodes]),this.stop();break;case"Escape":this.ssp.removeTopologyById(this.options.id),null===(e=(t=this.options).onCancel)||void 0===e||e.call(t),this.stop()}}pushNode(){var s,o;this.mouseDownNode&&this.mouseDownObject&&(this.nodes.push(this.mouseDownNode),this.renderTopology(this.nodes),null===(o=(s=this.options).onAdd)||void 0===o||o.call(s,this.mouseDownNode,this.mouseDownObject),this.mouseDownNode=null,this.mouseDownObject=null)}popNode(){var s,o;const i=this.nodes.pop();i&&(this.renderTopology(this.nodes),null===(o=(s=this.options).onUndo)||void 0===o||o.call(s,i))}renderTopology(s){this.topology?this.ssp.resetTopologyNodes(this.topology,s):this.topology=this.ssp.createTopology(Object.assign(Object.assign({},this.options),{type:"line",nodes:s}))}}export{s as default};
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@soonspacejs/plugin-drawing-topology",
3
3
  "pluginName": "DrawingTopologyPlugin",
4
- "version": "2.10.7",
4
+ "version": "2.10.9",
5
5
  "description": "DrawingTopologyPlugin 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": "bd1b28341fdb603168648a99dbcb043c02985e9c",
16
+ "gitHead": "386a1db55f6cbff7d00d476842b535ff5612cef3",
17
17
  "peerDependencies": {
18
- "soonspacejs": "2.10.7"
18
+ "soonspacejs": "2.10.9"
19
19
  }
20
20
  }