mxdraw 0.0.17 → 0.1.2

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.
Files changed (106) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +74 -169
  3. package/dist/lib/MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass.js +22 -11
  4. package/dist/lib/MxModule/McEdGetPointWorldDrawObject/index.js +0 -1
  5. package/dist/lib/MxModule/McGiWorldDraw/McGiWorldDraw.js +2 -0
  6. package/dist/lib/MxModule/McGiWorldDraw/index.js +2 -0
  7. package/dist/lib/MxModule/McGiWorldDrawType/McGiWorldDrawType.js +19 -0
  8. package/dist/lib/MxModule/McGiWorldDrawType/index.js +4 -0
  9. package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/MrxDbgUiPrBaseReturn.js +0 -1
  10. package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/index.js +0 -1
  11. package/dist/lib/MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass.js +0 -1
  12. package/dist/lib/MxModule/MrxDbgUiPrPoint/index.js +0 -1
  13. package/dist/lib/MxModule/MxDbEntity/MxDbEntity.js +174 -0
  14. package/dist/lib/MxModule/MxDbEntity/index.js +5 -0
  15. package/dist/lib/MxModule/MxDrawObject/MxDrawObject.js +401 -27
  16. package/dist/lib/MxModule/MxDrawObject/index.js +0 -1
  17. package/dist/lib/MxModule/MxFun/MxFun.js +84 -22
  18. package/dist/lib/MxModule/MxFun/index.js +0 -1
  19. package/dist/lib/MxModule/MxThreeJS/MxThreeJS.js +5 -35
  20. package/dist/lib/MxModule/MxThreeJS/MxThreeJS.mixin.js +71 -29
  21. package/dist/lib/MxModule/MxThreeJS/SVGLoader.js +4 -5
  22. package/dist/lib/MxModule/MxThreeJS/index.js +0 -1
  23. package/dist/lib/MxModule/MxType/MxType.js +27 -0
  24. package/dist/lib/MxModule/MxType/index.js +4 -0
  25. package/dist/lib/MxModule/loadCoreCode/index.js +0 -1
  26. package/dist/lib/MxModule/loadCoreCode/loadCoreCode.js +48 -41
  27. package/dist/lib/MxModule/loadCoreCode/mxfun.es5.js +1164 -943
  28. package/dist/lib/MxModule/store/PubsubClass.js +0 -1
  29. package/dist/lib/MxModule/store/StoreClass.js +0 -1
  30. package/dist/lib/MxModule/store/index.js +0 -1
  31. package/dist/lib/MxModule/store/store.js +0 -1
  32. package/dist/lib/MxModule/useCanvasResizeListener/index.js +0 -1
  33. package/dist/lib/MxModule/useCanvasResizeListener/useCanvasResizeListener.js +77 -25
  34. package/dist/lib/doc.js +5 -2
  35. package/dist/lib/mxdraw.js +12 -4
  36. package/dist/lib/tools/algorithm/math.js +0 -1
  37. package/dist/lib/tools/algorithm/random.js +0 -1
  38. package/dist/lib/tools/dom/create.js +0 -1
  39. package/dist/lib/tools/dynamicImport/index.js +142 -0
  40. package/dist/lib/tools/formatting/index.js +0 -1
  41. package/dist/lib/tools/proxy/index.js +0 -1
  42. package/dist/lib/tools/three/index.js +0 -1
  43. package/dist/lib/types/McEdGetPointWorldDrawObject.js +2 -0
  44. package/dist/lib/types/MrxDbgUiPrPoint.js +2 -0
  45. package/dist/lib/types/MxCADObject.js +3 -0
  46. package/dist/lib/types/MxDrawObject.js +2 -0
  47. package/dist/lib/types/MxFun.js +2 -0
  48. package/dist/mxdraw.es5.js +28 -3
  49. package/dist/mxdraw.es5.js.map +1 -1
  50. package/dist/mxdraw.umd.js +29 -4
  51. package/dist/mxdraw.umd.js.map +1 -1
  52. package/dist/types/MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass.d.ts +12 -2
  53. package/dist/types/MxModule/McGiWorldDraw/McGiWorldDraw.d.ts +227 -0
  54. package/dist/types/MxModule/McGiWorldDraw/index.d.ts +2 -0
  55. package/dist/types/MxModule/McGiWorldDrawType/McGiWorldDrawType.d.ts +16 -0
  56. package/dist/types/MxModule/McGiWorldDrawType/index.d.ts +2 -0
  57. package/dist/types/MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass.d.ts +1 -1
  58. package/dist/types/MxModule/MxDbEntity/MxDbEntity.d.ts +198 -0
  59. package/dist/types/MxModule/MxDbEntity/index.d.ts +3 -0
  60. package/dist/types/MxModule/MxDrawObject/MxDrawObject.d.ts +317 -1
  61. package/dist/types/MxModule/MxFun/MxFun.d.ts +66 -20
  62. package/dist/types/MxModule/MxThreeJS/MxThreeJS.d.ts +11 -14
  63. package/dist/types/MxModule/MxType/MxType.d.ts +24 -0
  64. package/dist/types/MxModule/MxType/index.d.ts +2 -0
  65. package/dist/types/MxModule/store/store.d.ts +1 -1
  66. package/dist/types/MxModule/useCanvasResizeListener/useCanvasResizeListener.d.ts +9 -5
  67. package/dist/types/doc.d.ts +4 -1
  68. package/dist/types/mxdraw.d.ts +8 -2
  69. package/dist/types/tools/dynamicImport/index.d.ts +1 -0
  70. package/dist/types/types/McEdGetPointWorldDrawObject.d.ts +9 -0
  71. package/dist/types/types/MrxDbgUiPrPoint.d.ts +23 -0
  72. package/dist/types/types/MxCADObject.d.ts +40 -0
  73. package/dist/types/types/MxDrawObject.d.ts +57 -0
  74. package/dist/types/types/MxFun.d.ts +37 -0
  75. package/package.json +8 -3
  76. package/dist/lib/MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass.js.map +0 -1
  77. package/dist/lib/MxModule/McEdGetPointWorldDrawObject/index.js.map +0 -1
  78. package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/MrxDbgUiPrBaseReturn.js.map +0 -1
  79. package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/index.js.map +0 -1
  80. package/dist/lib/MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass.js.map +0 -1
  81. package/dist/lib/MxModule/MrxDbgUiPrPoint/index.js.map +0 -1
  82. package/dist/lib/MxModule/MxDrawObject/MxDrawObject.js.map +0 -1
  83. package/dist/lib/MxModule/MxDrawObject/index.js.map +0 -1
  84. package/dist/lib/MxModule/MxFun/MxFun.js.map +0 -1
  85. package/dist/lib/MxModule/MxFun/index.js.map +0 -1
  86. package/dist/lib/MxModule/MxThreeJS/MxThreeJS.js.map +0 -1
  87. package/dist/lib/MxModule/MxThreeJS/MxThreeJS.mixin.js.map +0 -1
  88. package/dist/lib/MxModule/MxThreeJS/SVGLoader.js.map +0 -1
  89. package/dist/lib/MxModule/MxThreeJS/index.js.map +0 -1
  90. package/dist/lib/MxModule/loadCoreCode/index.js.map +0 -1
  91. package/dist/lib/MxModule/loadCoreCode/loadCoreCode.js.map +0 -1
  92. package/dist/lib/MxModule/loadCoreCode/mxfun.es5.js.map +0 -1
  93. package/dist/lib/MxModule/store/PubsubClass.js.map +0 -1
  94. package/dist/lib/MxModule/store/StoreClass.js.map +0 -1
  95. package/dist/lib/MxModule/store/index.js.map +0 -1
  96. package/dist/lib/MxModule/store/store.js.map +0 -1
  97. package/dist/lib/MxModule/useCanvasResizeListener/index.js.map +0 -1
  98. package/dist/lib/MxModule/useCanvasResizeListener/useCanvasResizeListener.js.map +0 -1
  99. package/dist/lib/doc.js.map +0 -1
  100. package/dist/lib/mxdraw.js.map +0 -1
  101. package/dist/lib/tools/algorithm/math.js.map +0 -1
  102. package/dist/lib/tools/algorithm/random.js.map +0 -1
  103. package/dist/lib/tools/dom/create.js.map +0 -1
  104. package/dist/lib/tools/formatting/index.js.map +0 -1
  105. package/dist/lib/tools/proxy/index.js.map +0 -1
  106. package/dist/lib/tools/three/index.js.map +0 -1
@@ -1,5 +1,6 @@
1
1
  /** @module MxDrawObject */
2
- import { MxDrawObjectType } from '@/types/MxDrawObject';
2
+ import { MxDrawObjectType } from '../../types/MxDrawObject';
3
+ import MxDbEntity from '../MxDbEntity';
3
4
  /**
4
5
  * 引入mxdraw库不会挂载MxDrawObject 只能在以下特定函数中获取
5
6
  * @function
@@ -11,6 +12,7 @@ import { MxDrawObjectType } from '@/types/MxDrawObject';
11
12
  *
12
13
  */
13
14
  export default class MxDrawObject {
15
+ private _mxdrawObj;
14
16
  constructor(Mxdraw: MxDrawObjectType);
15
17
  /**
16
18
  * @instance
@@ -229,6 +231,8 @@ export default class MxDrawObject {
229
231
  * Mx.MxFun.getCurrentDraw().addEvent("render", (renderer)=> {})
230
232
  * 视区大小被修改事件.,viewsize={viewWidth:viewWidth,viewHeight:viewHeight}
231
233
  * Mx.MxFun.getCurrentDraw().addEvent("viewsizechange", (viewsize)=> {})
234
+ * 实体选择状态发生改变的事件.
235
+ * Mx.MxFun.getCurrentDraw().addEvent("MxEntitySelectChange", (aryId:Array<number>)=> {})
232
236
  * ```
233
237
  */
234
238
  addEvent(eventNaem: string, fun: (...parmes: any) => any): void;
@@ -245,6 +249,146 @@ export default class MxDrawObject {
245
249
  setIniset(options: {
246
250
  EnableOsnapFunction: boolean;
247
251
  }): void;
252
+ /**
253
+ * 屏幕坐标到ThreeJS坐标
254
+ * @returns THREE.Vector3
255
+ * @example
256
+ * ```typescript
257
+ *
258
+ *
259
+ * ```
260
+ */
261
+ screenCoord2World(x: number, y: number, z?: number): THREE.Vector3;
262
+ /**
263
+ * ThreeJS坐标到屏幕坐标,屏幕坐标的Y轴向下。坐标原点在左上角.
264
+ * @returns THREE.Vector3
265
+ * @example
266
+ * ```typescript
267
+ *
268
+ *
269
+ * ```
270
+ */
271
+ worldCoord2Screen(x: number, y: number, z: number): THREE.Vector3;
272
+ /**
273
+ * 屏幕坐标到DWG文档坐标
274
+ * @returns THREE.Vector3
275
+ * @example
276
+ * ```typescript
277
+ *
278
+ *
279
+ * ```
280
+ */
281
+ screenCoord2Doc(x: number, y: number, z: number): THREE.Vector3;
282
+ /**
283
+ * ThreeJS坐标长度到DWG文档坐标长度
284
+ * @returns number
285
+ * @example
286
+ * ```typescript
287
+ *
288
+ *
289
+ * ```
290
+ */
291
+ worldCoordLong2Doc(l: number): number;
292
+ /**
293
+ * DWG文档坐标长度到ThreeJS坐标长度
294
+ * @returns number
295
+ * @example
296
+ * ```typescript
297
+ *
298
+ *
299
+ * ```
300
+ */
301
+ docCoordLong2World(l: number): number;
302
+ /**
303
+ * DWG文档坐标到ThreeJS坐标
304
+ * @returns number
305
+ * @example
306
+ * ```typescript
307
+ *
308
+ *
309
+ * ```
310
+ */
311
+ docCoord2World(x: number, y: number, z: number): THREE.Vector3;
312
+ /**
313
+ * DWG文档坐标到ThreeJS坐标
314
+ * @returns THREE.Vector3
315
+ * @example
316
+ * ```typescript
317
+ *
318
+ *
319
+ * ```
320
+ */
321
+ docCoord2World2(pt: THREE.Vector3): THREE.Vector3;
322
+ /**
323
+ * ThreeJS坐标到DWG文档坐标
324
+ * @returns number
325
+ * @example
326
+ * ```typescript
327
+ *
328
+ *
329
+ * ```
330
+ */
331
+ worldCoord2Doc(x: number, y: number, z: number): THREE.Vector3;
332
+ /**
333
+ * ThreeJS坐标到DWG文档坐标
334
+ * @returns THREE.Vector3
335
+ * @example
336
+ * ```typescript
337
+ *
338
+ *
339
+ * ```
340
+ */
341
+ worldCoord2Doc2(pt: THREE.Vector3): THREE.Vector3;
342
+ /**
343
+ * DWG文档坐标到屏幕坐标
344
+ * @returns number
345
+ * @example
346
+ * ```typescript
347
+ *
348
+ *
349
+ * ```
350
+ */
351
+ docCoord2Screen(x: number, y: number, z: number): THREE.Vector3;
352
+ /**
353
+ * 屏幕坐标长度到DWG文档坐标长度
354
+ * @returns number
355
+ * @example
356
+ * ```typescript
357
+ *
358
+ *
359
+ * ```
360
+ */
361
+ screenCoordLong2Doc(l: number): number;
362
+ /**
363
+ * DWG文档坐标长度到屏幕坐标长度
364
+ * @returns number
365
+ * @example
366
+ * ```typescript
367
+ *
368
+ *
369
+ * ```
370
+ */
371
+ docCoordLong2Screen(l: number): number;
372
+ /**
373
+ * 屏幕坐标长度到ThreeJS坐标长度
374
+ * @returns number
375
+ * @example
376
+ * ```typescript
377
+ *
378
+ *
379
+ * ```
380
+ */
381
+ screenCoordLong2World(l: number): number;
382
+ /**
383
+ * ThreeJS坐标长度到屏幕坐标长度
384
+ * @returns number
385
+ * @example
386
+ * ```typescript
387
+ *
388
+ *
389
+ * ```
390
+ */
391
+ worldCoordLong2Screen(l: number): number;
248
392
  /**
249
393
  * 初始WebGL Renderer的创建参数,该函数在MxFun.createMxObject函数调用时,调用。
250
394
  * @param param
@@ -256,4 +400,176 @@ export default class MxDrawObject {
256
400
  * ```
257
401
  */
258
402
  initRendererParam(param: object): void;
403
+ /**
404
+ * 添加一个自定义实体到图上。
405
+ * @param ent 自定义实体对象
406
+ * @returns number 返回对象的id.
407
+ * @example
408
+ * ```typescript
409
+ *
410
+ *
411
+ * ```
412
+ */
413
+ addMxEntity(ent: MxDbEntity): number;
414
+ /**
415
+ * 得到图上当前选择的对象.
416
+ * @returns Array<number> 返回对象的id数组.
417
+ * @example
418
+ * ```typescript
419
+ *
420
+ *
421
+ * ```
422
+ */
423
+ getMxCurrentSelect(): Array<number>;
424
+ /**
425
+ * 把对象添加到当前选择中.
426
+ * @returns void
427
+ * @example
428
+ * ```typescript
429
+ *
430
+ *
431
+ * ```
432
+ */
433
+ addMxCurrentSelect(id: number): void;
434
+ /**
435
+ * 清除当前所有选择
436
+ * @returns void
437
+ * @example
438
+ * ```typescript
439
+ *
440
+ *
441
+ * ```
442
+ */
443
+ clearMxCurrentSelect(): boolean;
444
+ /**
445
+ *通过id获取绘制的对象.
446
+ * @param id 返回对象的id
447
+ * @returns MxDbEntity
448
+ * @example
449
+ * ```typescript
450
+ *
451
+ *
452
+ * ```
453
+ */
454
+ getMxEntity(id: number): MxDbEntity;
455
+ /**
456
+ * 查找某点位置处的用户自绘对象.
457
+ * @param ptMouse 查找的点位 THREE.Vector3
458
+ * @param isWorldCoord 点是否是默认坐标 默认为 true
459
+ * @returns MxDbEntity[] 返回用户自绘对象数组
460
+ * @example
461
+ * ```typescript
462
+ *
463
+ *
464
+ * ```
465
+ */
466
+ findMxEntityAtPoint(ptMouse: THREE.Vector3, isWorldCoord?: boolean): Array<MxDbEntity>;
467
+ /**
468
+ *得到所有用户自绘对象.
469
+ * @returns MxDbEntity[] 返回用户自绘对象数组
470
+ * @example
471
+ * ```typescript
472
+ *
473
+ *
474
+ * ```
475
+ */
476
+ getAllMxEntity(): Array<MxDbEntity>;
477
+ /**
478
+ * 设置鼠标中键移动视区。
479
+ * @param isPan 设置是否可以鼠标中键移动视区
480
+ * @returns
481
+ * @example
482
+ * ```typescript
483
+ *
484
+ *
485
+ * ```
486
+ */
487
+ setMouseMiddlePan(isPan: boolean): void;
488
+ /**
489
+ *重新设置ThreeJS Controls状态.
490
+ * @returns
491
+ * @example
492
+ * ```typescript
493
+ *
494
+ *
495
+ * ```
496
+ */
497
+ resetThreeJSControls(): void;
498
+ /**
499
+ * 启用或禁用鼠标中键滚动缩放视区
500
+ * @param isEnable 是否启用
501
+ * @returns
502
+ * @example
503
+ * ```typescript
504
+ *
505
+ *
506
+ * ```
507
+ */
508
+ enableZoom(isEnable: boolean): void;
509
+ /**
510
+ * 启用或禁用鼠标移动视区
511
+ * @param isEnable 是否启用
512
+ * @returns
513
+ * @example
514
+ * ```typescript
515
+ *
516
+ *
517
+ * ```
518
+ */
519
+ enablePan(isEnable: boolean): void;
520
+ /**
521
+ * 删除MxEntity
522
+ * @param id 实体id.
523
+ * @returns
524
+ * @example
525
+ * ```typescript
526
+ *
527
+ *
528
+ * ```
529
+ */
530
+ eraseMxEntity(id: number): boolean;
531
+ /**
532
+ * 移除安视图坐标绘制的对象.
533
+ * @param obj 对象.
534
+ * @returns
535
+ * @example
536
+ * ```typescript
537
+ *
538
+ *
539
+ * ```
540
+ */
541
+ removeViewObject(obj: THREE.Object3D): void;
542
+ /**
543
+ * 保存所有MxEntity的数据到json字符串.
544
+ * @param
545
+ * @returns json字符串
546
+ * @example
547
+ * ```typescript
548
+ *
549
+ *
550
+ * ```
551
+ */
552
+ saveMxEntityToJson(): string;
553
+ /**
554
+ * 从json字符串恢复MxEntity
555
+ * @param dataString json字符串.
556
+ * @returns
557
+ * @example
558
+ * ```typescript
559
+ *
560
+ *
561
+ * ```
562
+ */
563
+ loadMxEntityFromJson(dataString: string): boolean;
564
+ /**
565
+ * 删除所有对MxEntity
566
+ * @param
567
+ * @returns
568
+ * @example
569
+ * ```typescript
570
+ *
571
+ *
572
+ * ```
573
+ */
574
+ eraseAllMxEntity(): void;
259
575
  }
@@ -1,5 +1,8 @@
1
- import { CanvasParent } from '@/types/MxModule';
2
1
  import MxDrawObject from '../MxDrawObject';
2
+ import { MeshLambertMaterial } from 'three';
3
+ interface CanvasParent extends HTMLElement {
4
+ tabindex?: number;
5
+ }
3
6
  /**
4
7
  * MxFun 模块
5
8
  * 导出库时已实例化,只需要调用实例方法 例如:
@@ -13,7 +16,7 @@ export default class MxFun {
13
16
  * 创建图纸展示控件实例
14
17
  * @param canvasId 提供一个canvas元素或者唯一的ID或者class类亦或者Jquery选中的元素
15
18
  * @paramType string | HTMLCanvasElement | JQuery<HTMLElement>
16
- * @param drawName 提供要展示的图纸名称
19
+ * @param cadFile 提供要展示的图纸名称
17
20
  * @paramType string
18
21
  * @param callback 图纸展示控件创建完成后的回调函数 回调参数mxDraw和dom
19
22
  * @paramType function
@@ -24,7 +27,7 @@ export default class MxFun {
24
27
  * ``` typescript
25
28
  * Mx.MxFun.createMxObject({
26
29
  * canvasId: "my-app",
27
- * drawName: "test2.dwg",
30
+ * cadFile: "test2.dwg",
28
31
  * callback(mxDraw, { canvas, canvasParent }) {
29
32
  * console.log(mxDraw, canvas, canvasParent)
30
33
  * },
@@ -32,9 +35,9 @@ export default class MxFun {
32
35
  * })
33
36
  * ```
34
37
  */
35
- createMxObject({ canvasId, drawName, callback, isNewFile }: {
38
+ createMxObject({ canvasId, cadFile, callback, isNewFile }: {
36
39
  canvasId?: string;
37
- drawName?: string;
40
+ cadFile?: string;
38
41
  callback?: (mxDraw: MxDrawObject, dom: {
39
42
  canvas: HTMLCanvasElement;
40
43
  canvasParent: CanvasParent;
@@ -95,7 +98,7 @@ export default class MxFun {
95
98
  * }
96
99
  * ```
97
100
  */
98
- sendStringToExecute(cmdName: string): boolean;
101
+ sendStringToExecute(cmdName: string, ...ages: any[]): boolean;
99
102
  /**
100
103
  * 调用后台服务程序中的NodeJS用户定义函数 后台程序使用Mx.MxFun.registFun注册用户定义函数
101
104
  * @param funName 函数名
@@ -105,7 +108,7 @@ export default class MxFun {
105
108
  * @example
106
109
  * ``` typescript
107
110
  * Mx.MxFun.call("getDrawObject", {
108
- * drawName: "test.dwg"
111
+ * cadFile: "test.dwg"
109
112
  * }, (res)=> {
110
113
  * console.log(res)
111
114
  * })
@@ -144,6 +147,16 @@ export default class MxFun {
144
147
  * ```
145
148
  */
146
149
  worldCoordLong2Doc(len: number): number;
150
+ /**
151
+ * DWG文档坐标长度到ThreeJS坐标长度
152
+ * @returns number
153
+ * @example
154
+ * ```typescript
155
+ *
156
+ *
157
+ * ```
158
+ */
159
+ docCoordLong2World(l: number): number;
147
160
  /**
148
161
  * 屏幕坐标转THREE.JS坐标.
149
162
  * @param x 坐标x
@@ -156,9 +169,9 @@ export default class MxFun {
156
169
  * console.log(vector3)
157
170
  * ```
158
171
  */
159
- screenCoord2World(x: number, y: number, z: number): THREE.Vector3;
172
+ screenCoord2World(x: number | THREE.Vector3, y?: number, z?: number): THREE.Vector3;
160
173
  /**
161
- * THREE.JS坐标转屏幕坐标.
174
+ * THREE.JS坐标转屏幕坐标.,屏幕坐标的Y轴向下。坐标原点在左上角.
162
175
  * @param x 坐标x
163
176
  * @param y 坐标y
164
177
  * @param z 坐标z
@@ -169,9 +182,10 @@ export default class MxFun {
169
182
  * console.log(vector3)
170
183
  * ```
171
184
  */
172
- worldCoord2Screen(x: number, y: number, z: number): THREE.Vector3;
185
+ worldCoord2Screen(x: number | THREE.Vector3, y?: number, z?: number): THREE.Vector3;
173
186
  /**
174
187
  * 文档坐标转THREE.JS坐标
188
+ * 说明: 文档坐标,THREE.JS坐标的X轴都是从左到右,Y轴是下到上,但是屏幕像素坐标系:X轴都是从左到右,Y轴是上到下
175
189
  * @param x 坐标x
176
190
  * @param y 坐标y
177
191
  * @param z 坐标z
@@ -310,7 +324,7 @@ export default class MxFun {
310
324
  * console.log(mxcad)
311
325
  * ```
312
326
  */
313
- getCurrentMxCAD(): MxDrawObject;
327
+ getCurrentMxCAD(): import("../../types/MxCADObject").MxCADObject;
314
328
  /**
315
329
  * 得到地址栏参数
316
330
  * @param name
@@ -322,23 +336,17 @@ export default class MxFun {
322
336
  */
323
337
  getQueryString(name: string): string;
324
338
  /**
325
- * 设置控件的配制参数. Mx.MxFun.createMxObject的 callback回调函数中调用.
339
+ * 设置控件的配制参数.
326
340
  * @param name
327
- * @return string 地址栏参数
341
+ * @return object 配制参数.
328
342
  * @example
329
343
  * ``` typescript
330
- * Mx.MxFun.createMxObject({
331
- * callback() {
332
344
  * Mx.MxFun.setIniset({
333
345
  * EnableIntelliSelect: true
334
346
  * })
335
- * }
336
- * })
337
347
  * ```
338
348
  */
339
- setIniset(iniObj: {
340
- EnableIntelliSelect: boolean;
341
- }): void;
349
+ setIniset(iniObj: object): void;
342
350
  /**
343
351
  * 更新图纸图层数据
344
352
  * @param dataLayers
@@ -372,4 +380,42 @@ export default class MxFun {
372
380
  * ```
373
381
  */
374
382
  testMX(p?: any): any;
383
+ /**
384
+ * 加载一个图片对象,返回Three.js材质对象,该函数具有缓存功能,下次加载同样的图片,可以直接返回.
385
+ * @param p
386
+ * @return any
387
+ * @example
388
+ * ``` typescript
389
+ *
390
+ * ```
391
+ */
392
+ loadImageMaterial(imageUrlPath: string, callResult: (material: MeshLambertMaterial) => void): void;
393
+ /**
394
+ * 判断点是否在一个闭合的多边形区域。
395
+ * @param p
396
+ * @return any
397
+ * @example
398
+ * ``` typescript
399
+ * let aryPoint:Array<THREE.Vector3> = [];
400
+ * aryPoint.push(new THREE.Vector3(0,0,0));
401
+ * aryPoint.push(new THREE.Vector3(0,100,0));
402
+ * aryPoint.push(new THREE.Vector3(100,100,0));
403
+ * aryPoint.push(new THREE.Vector3(100,0,0));
404
+ * let pt:THREE.Vector3 = new THREE.Vector3(150,150);
405
+ * if(MxFun.pointInPolyline(pt,aryPoint) ){
406
+ * console.log("in");
407
+ * }
408
+ * ```
409
+ */
410
+ pointInPolyline(pt: THREE.Vector3, vecPolyline: Array<THREE.Vector3>): boolean;
411
+ /**
412
+ * 计算多边形区域的面积
413
+ * @param p
414
+ * @return any
415
+ * @example
416
+ * ``` typescript
417
+ * ```
418
+ */
419
+ calcArea(aryPoint: Array<THREE.Vector3>): number;
375
420
  }
421
+ export {};
@@ -1,4 +1,4 @@
1
- import { Vector3, Line, Object3D, Points, Sprite, Mesh, MeshBasicMaterial, Color } from 'three';
1
+ import { Vector3, Line, Object3D, LineLoop, Points, Sprite, Mesh, MeshBasicMaterial } from 'three';
2
2
  /**
3
3
  * MxThreeJS 模块
4
4
  * ##### 使用说明:
@@ -56,7 +56,7 @@ export default class MxThreeJS {
56
56
  * Mx.MxThreeJS.createLine(new Three.Vector3(1,10,0), new Three.Vector3(1,300,0), 0)
57
57
  * ```
58
58
  */
59
- createLine(vPt1: Vector3, vPt2: Vector3, iColor: Color | number | string): Line;
59
+ createLine(vPt1: Vector3, vPt2: Vector3, iColor: ColorType): Line;
60
60
  /**
61
61
  * 创建Three.js圆对象。
62
62
  * @param mCenterPt 圆中心点
@@ -68,7 +68,7 @@ export default class MxThreeJS {
68
68
  * Mx.MxThreeJS.createCircle(new Three.Vector3(1,10,0), 10, 0)
69
69
  * ```
70
70
  */
71
- createCircle(mCenterPt: Vector3, dRadius: number, iColor: Color | number | string): Object3D;
71
+ createCircle(mCenterPt: Vector3, dRadius: number, iColor: ColorType): LineLoop;
72
72
  /**
73
73
  * 创建Three.js点对象。
74
74
  * @param mPt 点位置
@@ -79,7 +79,7 @@ export default class MxThreeJS {
79
79
  * Mx.MxThreeJS.createPoint(new Three.Vector3(1,10,0), 0)
80
80
  * ```
81
81
  */
82
- createPoint(mPt: Vector3, iColor: Color | number | string): Points;
82
+ createPoint(mPt: Vector3, iColor: ColorType): Points;
83
83
  /**
84
84
  * 创建Three.js 文字
85
85
  * @param message 文字信息
@@ -93,7 +93,7 @@ export default class MxThreeJS {
93
93
  * Mx.MxThreeJS.creatTextSprite("hello",new Three.Vector3(1,10,0), 90, 60, 0)
94
94
  * ```
95
95
  */
96
- creatTextSprite(message: string, pt: Vector3, iSize: number, fAngle: number, iColor: Color | number | string): Sprite | null;
96
+ creatTextSprite(message: string, pt: Vector3, iSize: number, fAngle: number, iColor: number): Sprite | null;
97
97
  /**
98
98
  * 根据三角形数组,创建Three.js Mesh
99
99
  * @param points 由三个点组成的数组
@@ -109,7 +109,7 @@ export default class MxThreeJS {
109
109
  * )
110
110
  * ```
111
111
  */
112
- createTriangle(points: Array<Vector3>, iColor: Color | number | string, opacity?: number): Mesh | null;
112
+ createTriangle(points: Array<Vector3>, iColor: ColorType, opacity?: number): Mesh | null;
113
113
  /**
114
114
  * 创建连续直线
115
115
  * @param points 由多个点组成的数组
@@ -120,7 +120,7 @@ export default class MxThreeJS {
120
120
  * Mx.MxThreeJS.createLines([new THREE.Vector3(1,2,2),new THREE.Vector3(1,65,4),new THREE.Vector3(12,2,2)], 0)
121
121
  * ```
122
122
  */
123
- createLines(points: Array<Vector3>, iColor: Color | number | string): Line;
123
+ createLines(points: Array<Vector3>, iColor: ColorType): Line;
124
124
  /**
125
125
  * 创建虚线
126
126
  * @param points 由多个点组成的数组
@@ -133,10 +133,10 @@ export default class MxThreeJS {
133
133
  * Mx.MxThreeJS.createDashedLines([new THREE.Vector3(1,2,2),new THREE.Vector3(1,65,4),new THREE.Vector3(12,2,2)], 10, 20, 2)
134
134
  * ```
135
135
  */
136
- createDashedLines(points: Array<Vector3>, iColor: Color | number | string, dashSize: number, gapSize: number): Line;
136
+ createDashedLines(points: Array<Vector3>, iColor: ColorType, dashSize: number, gapSize: number): Line;
137
137
  /**
138
138
  * 创建Image
139
- * @param pos 图片位置
139
+ * @param pos 图片中心点位置,屏幕坐标,屏幕坐标的Y轴向上。坐标原点在左下角.
140
140
  * @param w 图片宽度
141
141
  * @param h 图片高度
142
142
  * @param imageUrlPath 图片URl地址
@@ -152,10 +152,7 @@ export default class MxThreeJS {
152
152
  createImage(pos: Vector3, w: number, h: number, imageUrlPath: string, callResult?: (mesh: Mesh | null) => void): void;
153
153
  /**
154
154
  * 加载SVG
155
- * @param url SVG路径地址
156
- * @param x X轴位置
157
- * @param y Y轴位置
158
- * @param scale 缩放比
155
+ * @param url SVG路径地址,该函数具有缓存功能,下次加载同样的图片,可以直接返回.
159
156
  * @param color 颜色
160
157
  * @param callResult SVG加载完成的回调 回调参数:THREE.Object3D和Array<THREE.MeshBasicMaterial>
161
158
  * @returns void
@@ -166,5 +163,5 @@ export default class MxThreeJS {
166
163
  * })
167
164
  * ```
168
165
  */
169
- loadSVG(url: string, x: number, y: number, scale: number, color?: Color | number | string, callResult?: (threeobj: Object3D, aryMeterial: Array<MeshBasicMaterial>) => void): void;
166
+ loadSVG(url: string, color?: ColorType, callResult?: (threeobj: Object3D, aryMeterial: Array<MeshBasicMaterial>) => void): void;
170
167
  }
@@ -0,0 +1,24 @@
1
+ /** @module MxType*/
2
+ /**
3
+ * 动态绘制类型
4
+ * @example ```typescript
5
+
6
+ * ```
7
+ */
8
+ declare enum MxCloneType {
9
+ /** 正常Clone */
10
+ kClone = 1,
11
+ /** 动态拖动Clone */
12
+ kDragClone = 2
13
+ }
14
+ declare enum MxCloneType2 {
15
+ /** 正常Clone */
16
+ kClone = 1,
17
+ /** 动态拖动Clone */
18
+ kDragClone = 2
19
+ }
20
+ declare const _default: {
21
+ MxCloneType: typeof MxCloneType;
22
+ MxCloneType2: typeof MxCloneType2;
23
+ };
24
+ export default _default;
@@ -0,0 +1,2 @@
1
+ import MxType from "./MxType";
2
+ export default MxType;
@@ -1,4 +1,4 @@
1
- import { MxFunType } from '@/types/MxFun';
1
+ import { MxFunType } from '../../types/MxFun';
2
2
  import Store from './StoreClass';
3
3
  export declare type stateType = {
4
4
  [x: string]: any;
@@ -1,8 +1,12 @@
1
- import { MxDrawObjectType } from '@/types/MxDrawObject';
2
- /**
3
- * 使用canvas大小调整侦听器 (只有在 {@link MxFun.createMxObject} 的callbakc回调中调用才有效)
1
+ import MxDrawObject from '../MxDrawObject';
2
+ /**yar
3
+ * 使用canvas大小调整侦听器 (只有在 {@link MxFun.createMxObject} 的callbakc回调中调用才有效) 不调用该方法则默认使用window窗口监听从而自动调整画布大小,canvas大小或者其canvas父级元素变化不会自动调整。
4
+ * > 注意:调用方法会加载[element-resize-event-polyfill](https://www.npmjs.com/package/element-resize-event-polyfill)}依赖包 可以通过resize监听dom元素大小变化 `dom.addEventListener('resize', callback)`
5
+ * > 注意: MxFun.createMxObject 方法调用后默认会依据canvasParent父级元素作为自动调整的参考大小 所以传入的canvas也会默认监听canvas父级元素,适配大小请将canvas和canvasParent当作一个整体。
4
6
  * @param mxdrawObj 调用{@link MxFun.createMxObject}的callback回调函数拿到的 mxDraw 对象参数
5
- * @param canvas 调用{@link MxFun.createMxObject}的callback回调函数拿到的dom.canvas 的元素
7
+ * @param canvas 调用{@link MxFun.createMxObject}的callback回调函数拿到的dom.canvas作为要监听的元素
8
+ * @param time 大小监听节流函数节流时间 默认 100
9
+ * @param autoAdjust 是否自动调整大小 默认true
6
10
  * @param callback 监听回调
7
11
  */
8
- export default function useCanvasResizeListener(mxdrawObj: MxDrawObjectType, canvas: HTMLCanvasElement, callback?: ((event: UIEvent) => any) | undefined): void;
12
+ export default function useCanvasResizeListener(mxdrawObj: MxDrawObject, canvas: HTMLCanvasElement, time?: number, autoAdjust?: boolean, callback?: ((event: UIEvent) => any) | undefined): Promise<void>;
@@ -11,4 +11,7 @@ import MxDrawObject from './MxModule/MxDrawObject/MxDrawObject';
11
11
  import MrxDbgUiPrPoint from './MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass';
12
12
  import McEdGetPointWorldDrawObject from './MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass';
13
13
  import MrxDbgUiPrBaseReturn from './MxModule/MrxDbgUiPrBaseReturn/MrxDbgUiPrBaseReturn';
14
- export { MxFun, MxThreeJS, MxDrawObject, MrxDbgUiPrPoint, McEdGetPointWorldDrawObject, MrxDbgUiPrBaseReturn, loadCoreCode, useCanvasResizeListener };
14
+ import McGiWorldDraw from './MxModule/McGiWorldDraw/McGiWorldDraw';
15
+ import McGiWorldDrawType from './MxModule/McGiWorldDrawType/McGiWorldDrawType';
16
+ import MxDbEntity from './MxModule/MxDbEntity/MxDbEntity';
17
+ export { MxFun, MxThreeJS, MxDrawObject, MrxDbgUiPrPoint, McEdGetPointWorldDrawObject, MrxDbgUiPrBaseReturn, loadCoreCode, useCanvasResizeListener, McGiWorldDraw, McGiWorldDrawType, MxDbEntity };