mxdraw 0.1.1 → 0.1.4

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 (143) hide show
  1. package/README.md +19 -15
  2. package/dist/lib/MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass.js +0 -1
  3. package/dist/lib/MxModule/McEdGetPointWorldDrawObject/index.js +0 -1
  4. package/dist/lib/MxModule/McGeVector3d/McGeVector3d.js +2 -0
  5. package/dist/lib/MxModule/McGeVector3d/index.js +3 -0
  6. package/dist/lib/MxModule/McGiWorldDraw/McGiWorldDraw.js +0 -1
  7. package/dist/lib/MxModule/McGiWorldDraw/index.js +0 -1
  8. package/dist/lib/MxModule/McGiWorldDrawType/McGiWorldDrawType.js +0 -1
  9. package/dist/lib/MxModule/McGiWorldDrawType/index.js +0 -1
  10. package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/MrxDbgUiPrBaseReturn.js +0 -1
  11. package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/index.js +0 -1
  12. package/dist/lib/MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass.js +0 -1
  13. package/dist/lib/MxModule/MrxDbgUiPrPoint/index.js +0 -1
  14. package/dist/lib/MxModule/MxDbAlignedDimension/MxDbAlignedDimension.js +213 -0
  15. package/dist/lib/MxModule/MxDbAlignedDimension/index.js +5 -0
  16. package/dist/lib/MxModule/MxDbEntity/MxDbEntity.js +85 -7
  17. package/dist/lib/MxModule/MxDbEntity/index.js +0 -1
  18. package/dist/lib/MxModule/MxDbImage/MxDbImage.js +147 -0
  19. package/dist/lib/MxModule/MxDbImage/index.js +5 -0
  20. package/dist/lib/MxModule/MxDbLine/MxDbLine.js +94 -0
  21. package/dist/lib/MxModule/MxDbLine/index.js +5 -0
  22. package/dist/lib/MxModule/MxDbRect/MxDbRect.js +219 -0
  23. package/dist/lib/MxModule/MxDbRect/index.js +4 -0
  24. package/dist/lib/MxModule/MxDbSVG/MxDbSVG.js +208 -0
  25. package/dist/lib/MxModule/MxDbSVG/index.js +5 -0
  26. package/dist/lib/MxModule/MxDrawObject/MxDrawObject.js +100 -13
  27. package/dist/lib/MxModule/MxDrawObject/index.js +0 -1
  28. package/dist/lib/MxModule/MxFilters/MxFilters.js +201 -0
  29. package/dist/lib/MxModule/MxFilters/index.js +4 -0
  30. package/dist/lib/MxModule/MxFun/MxFun.js +98 -15
  31. package/dist/lib/MxModule/MxFun/index.js +0 -1
  32. package/dist/lib/MxModule/MxThreeJS/MxThreeJS.js +10 -35
  33. package/dist/lib/MxModule/MxThreeJS/MxThreeJS.mixin.js +71 -29
  34. package/dist/lib/MxModule/MxThreeJS/SVGLoader.js +0 -1
  35. package/dist/lib/MxModule/MxThreeJS/index.js +0 -1
  36. package/dist/lib/MxModule/MxType/MxType.js +27 -0
  37. package/dist/lib/MxModule/MxType/index.js +4 -0
  38. package/dist/lib/MxModule/Mxassembly/Mxassembly.js +18 -0
  39. package/dist/lib/MxModule/Mxassembly/index.js +9 -0
  40. package/dist/lib/MxModule/loadCoreCode/index.js +0 -1
  41. package/dist/lib/MxModule/loadCoreCode/loadCoreCode.js +16 -1
  42. package/dist/lib/MxModule/loadCoreCode/mxcadassembly_es5.js +1519 -0
  43. package/dist/lib/MxModule/loadCoreCode/mxfun.es5.js +755 -693
  44. package/dist/lib/MxModule/store/PubsubClass.js +0 -1
  45. package/dist/lib/MxModule/store/StoreClass.js +0 -1
  46. package/dist/lib/MxModule/store/index.js +0 -1
  47. package/dist/lib/MxModule/store/store.js +1 -1
  48. package/dist/lib/MxModule/useCanvasResizeListener/index.js +0 -1
  49. package/dist/lib/MxModule/useCanvasResizeListener/useCanvasResizeListener.js +0 -1
  50. package/dist/lib/doc.js +9 -2
  51. package/dist/lib/mxdraw.js +25 -7
  52. package/dist/lib/tools/algorithm/math.js +0 -1
  53. package/dist/lib/tools/algorithm/random.js +0 -1
  54. package/dist/lib/tools/dom/create.js +0 -1
  55. package/dist/lib/tools/dynamicImport/index.js +0 -1
  56. package/dist/lib/tools/formatting/index.js +0 -1
  57. package/dist/lib/tools/proxy/index.js +0 -1
  58. package/dist/lib/tools/three/index.js +100 -4
  59. package/dist/lib/types/McEdGetPointWorldDrawObject.js +0 -1
  60. package/dist/lib/types/MrxDbgUiPrPoint.js +0 -1
  61. package/dist/lib/types/MxCADObject.js +0 -1
  62. package/dist/lib/types/MxDrawObject.js +0 -1
  63. package/dist/lib/types/MxFun.js +0 -1
  64. package/dist/lib/types/Mxassembly.js +2 -0
  65. package/dist/mxdraw.es5.js +3 -3
  66. package/dist/mxdraw.es5.js.map +1 -1
  67. package/dist/mxdraw.umd.js +3 -3
  68. package/dist/mxdraw.umd.js.map +1 -1
  69. package/dist/types/MxModule/McGeVector3d/McGeVector3d.d.ts +17 -0
  70. package/dist/types/MxModule/McGeVector3d/index.d.ts +3 -0
  71. package/dist/types/MxModule/McGiWorldDraw/McGiWorldDraw.d.ts +77 -10
  72. package/dist/types/MxModule/MxDbAlignedDimension/MxDbAlignedDimension.d.ts +21 -0
  73. package/dist/types/MxModule/MxDbAlignedDimension/index.d.ts +3 -0
  74. package/dist/types/MxModule/MxDbEntity/MxDbEntity.d.ts +64 -4
  75. package/dist/types/MxModule/MxDbImage/MxDbImage.d.ts +28 -0
  76. package/dist/types/MxModule/MxDbImage/index.d.ts +3 -0
  77. package/dist/types/MxModule/MxDbLine/MxDbLine.d.ts +22 -0
  78. package/dist/types/MxModule/MxDbLine/index.d.ts +3 -0
  79. package/dist/types/MxModule/MxDbRect/MxDbRect.d.ts +74 -0
  80. package/dist/types/MxModule/MxDbRect/index.d.ts +2 -0
  81. package/dist/types/MxModule/MxDbSVG/MxDbSVG.d.ts +42 -0
  82. package/dist/types/MxModule/MxDbSVG/index.d.ts +3 -0
  83. package/dist/types/MxModule/MxDrawObject/MxDrawObject.d.ts +82 -6
  84. package/dist/types/MxModule/MxFilters/MxFilters.d.ts +94 -0
  85. package/dist/types/MxModule/MxFilters/index.d.ts +2 -0
  86. package/dist/types/MxModule/MxFun/MxFun.d.ts +82 -12
  87. package/dist/types/MxModule/MxThreeJS/MxThreeJS.d.ts +4 -7
  88. package/dist/types/MxModule/MxType/MxType.d.ts +24 -0
  89. package/dist/types/MxModule/MxType/index.d.ts +2 -0
  90. package/dist/types/MxModule/Mxassembly/Mxassembly.d.ts +11 -0
  91. package/dist/types/MxModule/Mxassembly/index.d.ts +3 -0
  92. package/dist/types/MxModule/loadCoreCode/mxcadassembly_es5.d.ts +1 -0
  93. package/dist/types/MxModule/store/store.d.ts +2 -0
  94. package/dist/types/doc.d.ts +5 -1
  95. package/dist/types/mxdraw.d.ts +17 -4
  96. package/dist/types/tools/three/index.d.ts +20 -1
  97. package/dist/types/types/MxDrawObject.d.ts +13 -6
  98. package/dist/types/types/MxFun.d.ts +15 -8
  99. package/dist/types/types/Mxassembly.d.ts +3 -0
  100. package/package.json +1 -1
  101. package/dist/lib/MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass.js.map +0 -1
  102. package/dist/lib/MxModule/McEdGetPointWorldDrawObject/index.js.map +0 -1
  103. package/dist/lib/MxModule/McGiWorldDraw/McGiWorldDraw.js.map +0 -1
  104. package/dist/lib/MxModule/McGiWorldDraw/index.js.map +0 -1
  105. package/dist/lib/MxModule/McGiWorldDrawType/McGiWorldDrawType.js.map +0 -1
  106. package/dist/lib/MxModule/McGiWorldDrawType/index.js.map +0 -1
  107. package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/MrxDbgUiPrBaseReturn.js.map +0 -1
  108. package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/index.js.map +0 -1
  109. package/dist/lib/MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass.js.map +0 -1
  110. package/dist/lib/MxModule/MrxDbgUiPrPoint/index.js.map +0 -1
  111. package/dist/lib/MxModule/MxDbEntity/MxDbEntity.js.map +0 -1
  112. package/dist/lib/MxModule/MxDbEntity/index.js.map +0 -1
  113. package/dist/lib/MxModule/MxDrawObject/MxDrawObject.js.map +0 -1
  114. package/dist/lib/MxModule/MxDrawObject/index.js.map +0 -1
  115. package/dist/lib/MxModule/MxFun/MxFun.js.map +0 -1
  116. package/dist/lib/MxModule/MxFun/index.js.map +0 -1
  117. package/dist/lib/MxModule/MxThreeJS/MxThreeJS.js.map +0 -1
  118. package/dist/lib/MxModule/MxThreeJS/MxThreeJS.mixin.js.map +0 -1
  119. package/dist/lib/MxModule/MxThreeJS/SVGLoader.js.map +0 -1
  120. package/dist/lib/MxModule/MxThreeJS/index.js.map +0 -1
  121. package/dist/lib/MxModule/loadCoreCode/index.js.map +0 -1
  122. package/dist/lib/MxModule/loadCoreCode/loadCoreCode.js.map +0 -1
  123. package/dist/lib/MxModule/loadCoreCode/mxfun.es5.js.map +0 -1
  124. package/dist/lib/MxModule/store/PubsubClass.js.map +0 -1
  125. package/dist/lib/MxModule/store/StoreClass.js.map +0 -1
  126. package/dist/lib/MxModule/store/index.js.map +0 -1
  127. package/dist/lib/MxModule/store/store.js.map +0 -1
  128. package/dist/lib/MxModule/useCanvasResizeListener/index.js.map +0 -1
  129. package/dist/lib/MxModule/useCanvasResizeListener/useCanvasResizeListener.js.map +0 -1
  130. package/dist/lib/doc.js.map +0 -1
  131. package/dist/lib/mxdraw.js.map +0 -1
  132. package/dist/lib/tools/algorithm/math.js.map +0 -1
  133. package/dist/lib/tools/algorithm/random.js.map +0 -1
  134. package/dist/lib/tools/dom/create.js.map +0 -1
  135. package/dist/lib/tools/dynamicImport/index.js.map +0 -1
  136. package/dist/lib/tools/formatting/index.js.map +0 -1
  137. package/dist/lib/tools/proxy/index.js.map +0 -1
  138. package/dist/lib/tools/three/index.js.map +0 -1
  139. package/dist/lib/types/McEdGetPointWorldDrawObject.js.map +0 -1
  140. package/dist/lib/types/MrxDbgUiPrPoint.js.map +0 -1
  141. package/dist/lib/types/MxCADObject.js.map +0 -1
  142. package/dist/lib/types/MxDrawObject.js.map +0 -1
  143. package/dist/lib/types/MxFun.js.map +0 -1
@@ -273,6 +273,8 @@ var MxDrawObject = /** @class */ (function () {
273
273
  * Mx.MxFun.getCurrentDraw().addEvent("render", (renderer)=> {})
274
274
  * 视区大小被修改事件.,viewsize={viewWidth:viewWidth,viewHeight:viewHeight}
275
275
  * Mx.MxFun.getCurrentDraw().addEvent("viewsizechange", (viewsize)=> {})
276
+ * 实体选择状态发生改变的事件.
277
+ * Mx.MxFun.getCurrentDraw().addEvent("MxEntitySelectChange", (aryId:Array<number>)=> {})
276
278
  * ```
277
279
  */
278
280
  MxDrawObject.prototype.addEvent = function (eventNaem, fun) {
@@ -304,7 +306,7 @@ var MxDrawObject = /** @class */ (function () {
304
306
  return this._mxdrawObj.screenCoord2World(x, y, z);
305
307
  };
306
308
  /**
307
- * ThreeJS坐标到屏幕坐标
309
+ * ThreeJS坐标到屏幕坐标,屏幕坐标的Y轴向下。坐标原点在左上角.
308
310
  * @returns THREE.Vector3
309
311
  * @example
310
312
  * ```typescript
@@ -324,8 +326,8 @@ var MxDrawObject = /** @class */ (function () {
324
326
  *
325
327
  * ```
326
328
  */
327
- MxDrawObject.prototype.screenCoord2Doc = function (x, y, z) {
328
- return this._mxdrawObj.screenCoord2Doc(x, y, z);
329
+ MxDrawObject.prototype.screenCoord2Doc = function (x, y) {
330
+ return this._mxdrawObj.screenCoord2Doc(x, y, 0);
329
331
  };
330
332
  /**
331
333
  * ThreeJS坐标长度到DWG文档坐标长度
@@ -408,8 +410,8 @@ var MxDrawObject = /** @class */ (function () {
408
410
  *
409
411
  * ```
410
412
  */
411
- MxDrawObject.prototype.docCoord2Screen = function (x, y, z) {
412
- return this._mxdrawObj.docCoord2Screen(x, y, z);
413
+ MxDrawObject.prototype.docCoord2Screen = function (x, y) {
414
+ return this._mxdrawObj.docCoord2Screen(x, y, 0);
413
415
  };
414
416
  /**
415
417
  * 屏幕坐标长度到DWG文档坐标长度
@@ -497,6 +499,30 @@ var MxDrawObject = /** @class */ (function () {
497
499
  MxDrawObject.prototype.getMxCurrentSelect = function () {
498
500
  return this._mxdrawObj.getMxAllSelect();
499
501
  };
502
+ /**
503
+ * 把对象添加到当前选择中.
504
+ * @returns void
505
+ * @example
506
+ * ```typescript
507
+ *
508
+ *
509
+ * ```
510
+ */
511
+ MxDrawObject.prototype.addMxCurrentSelect = function (id) {
512
+ return this._mxdrawObj.addMxCurrentSelect(id);
513
+ };
514
+ /**
515
+ * 清除当前所有选择
516
+ * @returns void
517
+ * @example
518
+ * ```typescript
519
+ *
520
+ *
521
+ * ```
522
+ */
523
+ MxDrawObject.prototype.clearMxCurrentSelect = function () {
524
+ return this._mxdrawObj.clearMxCurrentSelect();
525
+ };
500
526
  /**
501
527
  *通过id获取绘制的对象.
502
528
  * @param id 返回对象的id
@@ -508,12 +534,11 @@ var MxDrawObject = /** @class */ (function () {
508
534
  * ```
509
535
  */
510
536
  MxDrawObject.prototype.getMxEntity = function (id) {
511
- return this._mxdrawObj.getMxEntity(id);
537
+ return this._mxdrawObj.getMxEntityUserObject(id);
512
538
  };
513
539
  /**
514
540
  * 查找某点位置处的用户自绘对象.
515
- * @param ptMouse 查找的点位 THREE.Vector3
516
- * @param isWorldCoord 点是否是默认坐标 默认为 true
541
+ * @param ptMouse 查找的点位 THREE.Vector3,默认是文档坐标
517
542
  * @returns MxDbEntity[] 返回用户自绘对象数组
518
543
  * @example
519
544
  * ```typescript
@@ -521,10 +546,8 @@ var MxDrawObject = /** @class */ (function () {
521
546
  *
522
547
  * ```
523
548
  */
524
- MxDrawObject.prototype.findMxEntityAtPoint = function (ptMouse, isWorldCoord) {
525
- if (isWorldCoord == undefined)
526
- isWorldCoord = true;
527
- return this._mxdrawObj.findMxEntityAtPoint(ptMouse, isWorldCoord);
549
+ MxDrawObject.prototype.findMxEntityAtPoint = function (ptMouse) {
550
+ return this._mxdrawObj.findMxEntityAtPoint(ptMouse);
528
551
  };
529
552
  /**
530
553
  *得到所有用户自绘对象.
@@ -589,7 +612,71 @@ var MxDrawObject = /** @class */ (function () {
589
612
  MxDrawObject.prototype.enablePan = function (isEnable) {
590
613
  return this._mxdrawObj.enablePan(isEnable);
591
614
  };
615
+ /**
616
+ * 删除MxEntity
617
+ * @param id 实体id.
618
+ * @returns
619
+ * @example
620
+ * ```typescript
621
+ *
622
+ *
623
+ * ```
624
+ */
625
+ MxDrawObject.prototype.eraseMxEntity = function (id) {
626
+ return this._mxdrawObj.eraseMxEntity(id);
627
+ };
628
+ /**
629
+ * 移除安视图坐标绘制的对象.
630
+ * @param obj 对象.
631
+ * @returns
632
+ * @example
633
+ * ```typescript
634
+ *
635
+ *
636
+ * ```
637
+ */
638
+ MxDrawObject.prototype.removeViewObject = function (obj) {
639
+ this._mxdrawObj.removeViewObject(obj);
640
+ };
641
+ /**
642
+ * 保存所有MxEntity的数据到json字符串.
643
+ * @param
644
+ * @returns json字符串
645
+ * @example
646
+ * ```typescript
647
+ *
648
+ *
649
+ * ```
650
+ */
651
+ MxDrawObject.prototype.saveMxEntityToJson = function () {
652
+ return this._mxdrawObj.saveMxEntityToJson();
653
+ };
654
+ /**
655
+ * 从json字符串恢复MxEntity
656
+ * @param dataString json字符串.
657
+ * @returns
658
+ * @example
659
+ * ```typescript
660
+ *
661
+ *
662
+ * ```
663
+ */
664
+ MxDrawObject.prototype.loadMxEntityFromJson = function (dataString) {
665
+ return this._mxdrawObj.loadMxEntityFromJson(dataString);
666
+ };
667
+ /**
668
+ * 删除所有对MxEntity
669
+ * @param
670
+ * @returns
671
+ * @example
672
+ * ```typescript
673
+ *
674
+ *
675
+ * ```
676
+ */
677
+ MxDrawObject.prototype.eraseAllMxEntity = function () {
678
+ return this._mxdrawObj.eraseAllMxEntity();
679
+ };
592
680
  return MxDrawObject;
593
681
  }());
594
682
  exports.default = MxDrawObject;
595
- //# sourceMappingURL=MxDrawObject.js.map
@@ -3,4 +3,3 @@
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  var MxDrawObject_1 = require("./MxDrawObject");
5
5
  exports.default = MxDrawObject_1.default;
6
- //# sourceMappingURL=index.js.map
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ /** 简单颜色滤镜矩阵 */
15
+ var three_1 = require("three");
16
+ var MxFilters = /** @class */ (function () {
17
+ function MxFilters() {
18
+ this.uniformObj = {};
19
+ this.filtersStr = '';
20
+ this.filtersTypes = '';
21
+ //顶点着色器代码片段
22
+ this.VSHADER_SOURCE = "\n varying vec2 v_Uv; \n void main () {\n v_Uv = uv;\n gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );\n }\n ";
23
+ //片元着色器代码片段
24
+ this.FSHADER_SOURCE = "\n varying vec2 v_Uv;\n uniform sampler2D e_Texture;\n uniform mat4 colorMatrix;\n ".concat(this.filtersStr, "\n void main () {\n vec4 color = texture2D( e_Texture, v_Uv );\n color = color * colorMatrix;\n ").concat(this.filtersTypes, "\n gl_FragColor = color;\n }");
25
+ this._matrix = new three_1.Matrix4();
26
+ }
27
+ /**
28
+ * 过滤或增强某个颜色通道
29
+ * @param {ChannelParamTypes}
30
+ * */
31
+ MxFilters.prototype.channel = function (_a) {
32
+ var _b = _a.r, r = _b === void 0 ? 1 : _b, _c = _a.g, g = _c === void 0 ? 1 : _c, _d = _a.b, b = _d === void 0 ? 1 : _d;
33
+ this._matrix = new three_1.Matrix4()
34
+ .set(r, 0, 0, 0, 0, g, 0, 0, 0, 0, b, 0, 0, 0, 0, 1)
35
+ .multiply(this._matrix);
36
+ return this;
37
+ };
38
+ /**
39
+ * 改变亮度
40
+ * @param {number} p
41
+ * p = 0 全暗,p > 0 且 p < 1 调暗,p = 1 原色, p > 1 调亮
42
+ * */
43
+ MxFilters.prototype.brightness = function (p) {
44
+ this._matrix = new three_1.Matrix4()
45
+ .set(p, 0, 0, 0, 0, p, 0, 0, 0, 0, p, 0, 0, 0, 0, 1)
46
+ .multiply(this._matrix);
47
+ return this;
48
+ };
49
+ /**
50
+ * 饱和度
51
+ * @param {number} p
52
+ * p = 0 完全灰度化,p = 1 原色,p > 1 增强饱和度
53
+ * */
54
+ MxFilters.prototype.saturate = function (p) {
55
+ var r = 0.2126 * (1 - p);
56
+ var g = 0.7152 * (1 - p);
57
+ var b = 0.0722 * (1 - p);
58
+ this._matrix = new three_1.Matrix4()
59
+ .set(r + p, g, b, 0, r, g + p, b, 0, r, g, b + p, 0, 0, 0, 0, 1)
60
+ .multiply(this._matrix);
61
+ return this;
62
+ };
63
+ /**
64
+ * 对比度
65
+ * @param {number} p
66
+ * p = 1 原色, p < 1 减弱对比度,p > 1 增强对比度
67
+ * */
68
+ MxFilters.prototype.contrast = function (p) {
69
+ var d = 0.5 * (1 - p);
70
+ this._matrix = new three_1.Matrix4()
71
+ .set(p, 0, 0, 0, 0, p, 0, 0, 0, 0, p, 0, d, d, d, 1)
72
+ .multiply(this._matrix);
73
+ return this;
74
+ };
75
+ /**
76
+ * 透明度
77
+ * @param {number} p
78
+ * p = 0 全透明,p = 1 原色
79
+ * */
80
+ MxFilters.prototype.opacity = function (p) {
81
+ this._matrix = new three_1.Matrix4()
82
+ .set(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, p)
83
+ .multiply(this._matrix);
84
+ return this;
85
+ };
86
+ /**
87
+ * 反色
88
+ * @param {number} p
89
+ * p = 0 原色, p = 1 完全反色
90
+ * */
91
+ MxFilters.prototype.invert = function (p) {
92
+ var d = 1 - 2 * p;
93
+ this._matrix = new three_1.Matrix4()
94
+ .set(d, 0, 0, 0, 0, d, 0, 0, 0, 0, d, 0, p, p, p, 1)
95
+ .multiply(this._matrix);
96
+ return this;
97
+ };
98
+ /**
99
+ * 灰度
100
+ * @param {number} p 0~1
101
+ * */
102
+ MxFilters.prototype.grayscale = function (p) {
103
+ if (p === void 0) { p = 1; }
104
+ var r = 0.2126 * p;
105
+ var g = 0.7152 * p;
106
+ var b = 0.0722 * p;
107
+ this._matrix = new three_1.Matrix4()
108
+ .set(r + 1 - p, g, b, 0, r, g + 1 - p, b, 0, r, g, b + 1 - p, 0, 0, 0, 0, 1)
109
+ .multiply(this._matrix);
110
+ return this;
111
+ };
112
+ /**
113
+ * 深褐色
114
+ * @param {number} p 0~1
115
+ * */
116
+ MxFilters.prototype.sepia = function (p) {
117
+ if (p === void 0) { p = 1; }
118
+ this._matrix = new three_1.Matrix4()
119
+ .set(1 - 0.607 * p, 0.769 * p, 0.189 * p, 0, 0.349 * p, 1 - 0.314 * p, 0.168 * p, 0, 0.272 * p, 0.534 * p, 1 - 0.869 * p, 0, 0, 0, 0, 1)
120
+ .multiply(this._matrix);
121
+ return this;
122
+ };
123
+ /**
124
+ * 色相旋转,将色调沿极坐标转过deg角度
125
+ * @param {number} deg 0~360
126
+ * */
127
+ MxFilters.prototype.hueRotate = function (deg) {
128
+ var rotation = (deg / 180) * Math.PI;
129
+ var cos = Math.cos(rotation), sin = Math.sin(rotation), lumR = 0.2126, lumG = 0.7152, lumB = 0.0722;
130
+ this._matrix = new three_1.Matrix4()
131
+ .set(lumR + cos * (1 - lumR) + sin * -lumR, lumG + cos * -lumG + sin * -lumG, lumB + cos * -lumB + sin * (1 - lumB), 0, lumR + cos * -lumR + sin * 0.143, lumG + cos * (1 - lumG) + sin * 0.14, lumB + cos * -lumB + sin * -0.283, 0, lumR + cos * -lumR + sin * -(1 - lumR), lumG + cos * -lumG + sin * lumG, lumB + cos * (1 - lumB) + sin * lumB, 0, 0, 0, 0, 1)
132
+ .multiply(this._matrix);
133
+ return this;
134
+ };
135
+ /**
136
+ * 色相旋转,将色调沿极坐标转过deg角度
137
+ * @param {number} deg 0~360
138
+ * */
139
+ /**
140
+ * 卷积
141
+ * @param {Matrix3} cKernel 3*3的矩阵
142
+ * @param {number} stStep 1 / 9
143
+ * @param {number} scaleFactor 521
144
+ * */
145
+ MxFilters.prototype.convolution = function (cKernel, stStep, scaleFactor) {
146
+ if (stStep === void 0) { stStep = 1 / 9; }
147
+ if (scaleFactor === void 0) { scaleFactor = 521; }
148
+ this.uniformObj = __assign(__assign({}, this.uniformObj), { cKernel: {
149
+ value: cKernel.toArray()
150
+ }, stStep: {
151
+ value: stStep
152
+ }, scaleFactor: {
153
+ value: scaleFactor
154
+ } });
155
+ if (this.filtersTypes.indexOf('convolutionTextureColor') < 0) {
156
+ this.filtersStr += "\n uniform float cKernel[9];\n uniform float stStep;\n uniform float scaleFactor;\n vec4 convolutionTextureColor(vec4 color) {\n vec2 offsets[9];\n offsets[0] = vec2(-1.0,-1.0);\n offsets[1] = vec2(0.0,-1.0);\n offsets[2] = vec2(1.0,-1.0);\n offsets[3] = vec2(-1.0,0.0);\n offsets[4] = vec2(0.0,0.0);\n offsets[5] = vec2(1.0,0.0);\n offsets[6] = vec2(-1.0,1.0);\n offsets[7] = vec2(0.0,1.0);\n offsets[8] = vec2(1.0,1.0);\n \n vec4 sum = color;\n for(int i = 0; i < 9; i++) {\n sum = sum + cKernel[i] * scaleFactor * texture2D(e_Texture, v_Uv + offsets[i] / stStep);\n };\n return sum;\n }";
157
+ this.filtersTypes += 'color = convolutionTextureColor(color);\n';
158
+ }
159
+ return this;
160
+ };
161
+ /**
162
+ * 重置所有滤镜效果
163
+ * */
164
+ MxFilters.prototype.reset = function () {
165
+ this.uniformObj = {};
166
+ this.filtersStr = '';
167
+ this.filtersTypes = '';
168
+ this._matrix = new three_1.Matrix4();
169
+ return this;
170
+ };
171
+ // 获取滤镜自定义着色器数据
172
+ MxFilters.prototype._getFilterShaderData = function (texture) {
173
+ return {
174
+ uniforms: __assign({ e_Texture: {
175
+ value: texture
176
+ }, colorMatrix: {
177
+ value: this._matrix
178
+ } }, this.uniformObj),
179
+ // 顶点着色器
180
+ vertexShader: this.VSHADER_SOURCE,
181
+ // 片元着色器
182
+ fragmentShader: this.FSHADER_SOURCE
183
+ };
184
+ };
185
+ // 获取转换后的颜色
186
+ MxFilters.prototype._getFilterColor = function (color, opacity) {
187
+ if (color === void 0) { color = '#000000'; }
188
+ if (opacity === void 0) { opacity = 1; }
189
+ color = new three_1.Color(color);
190
+ var r = color.r, g = color.g, b = color.b;
191
+ var arr = this._matrix.toArray();
192
+ var A = arr[12] * opacity + arr[13] * opacity + arr[14] * opacity + arr[15] * opacity + 0;
193
+ var R = arr[0] * r + arr[1] * r + arr[2] * r + arr[3] * opacity;
194
+ var G = arr[4] * g + arr[5] * g + arr[6] * g + arr[7] * opacity;
195
+ var B = arr[8] * b + arr[9] * b + arr[10] * b + arr[11] * opacity;
196
+ color.setRGB(R, G, B);
197
+ return color;
198
+ };
199
+ return MxFilters;
200
+ }());
201
+ exports.default = MxFilters;
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var MxFilters_1 = require("./MxFilters");
4
+ exports.default = MxFilters_1.default;
@@ -14,6 +14,7 @@ var create_1 = require("../../tools/dom/create");
14
14
  var proxy_1 = require("../../tools/proxy");
15
15
  var MxDrawObject_1 = require("../MxDrawObject");
16
16
  var store_1 = require("../store/store");
17
+ var useCanvasResizeListener_1 = require("../useCanvasResizeListener");
17
18
  /**
18
19
  * MxFun 模块
19
20
  * 导出库时已实例化,只需要调用实例方法 例如:
@@ -30,7 +31,7 @@ var MxFun = /** @class */ (function () {
30
31
  * 创建图纸展示控件实例
31
32
  * @param canvasId 提供一个canvas元素或者唯一的ID或者class类亦或者Jquery选中的元素
32
33
  * @paramType string | HTMLCanvasElement | JQuery<HTMLElement>
33
- * @param drawName 提供要展示的图纸名称
34
+ * @param cadFile 提供要展示的图纸名称
34
35
  * @paramType string
35
36
  * @param callback 图纸展示控件创建完成后的回调函数 回调参数mxDraw和dom
36
37
  * @paramType function
@@ -41,7 +42,7 @@ var MxFun = /** @class */ (function () {
41
42
  * ``` typescript
42
43
  * Mx.MxFun.createMxObject({
43
44
  * canvasId: "my-app",
44
- * drawName: "test2.dwg",
45
+ * cadFile: "test2.dwg",
45
46
  * callback(mxDraw, { canvas, canvasParent }) {
46
47
  * console.log(mxDraw, canvas, canvasParent)
47
48
  * },
@@ -50,7 +51,7 @@ var MxFun = /** @class */ (function () {
50
51
  * ```
51
52
  */
52
53
  MxFun.prototype.createMxObject = function (_a) {
53
- var _b = _a.canvasId, canvasId = _b === void 0 ? (0, random_1.createReandomId)() : _b, _c = _a.drawName, drawName = _c === void 0 ? 'test2.dwg' : _c, callback = _a.callback, _d = _a.isNewFile, isNewFile = _d === void 0 ? true : _d;
54
+ var _b = _a.canvasId, canvasId = _b === void 0 ? (0, random_1.createReandomId)() : _b, _c = _a.cadFile, cadFile = _c === void 0 ? '' : _c, callback = _a.callback, _d = _a.isNewFile, isNewFile = _d === void 0 ? false : _d, _e = _a.useWebsocket, useWebsocket = _e === void 0 ? false : _e;
54
55
  // 获取canvas和其父级
55
56
  var canvas = (0, create_1.createCanvas)(canvasId);
56
57
  var canvasParent = (0, create_1.createCanvasParent)(canvas);
@@ -64,7 +65,7 @@ var MxFun = /** @class */ (function () {
64
65
  // canvasParent.style.position = 'relative';
65
66
  // 创建实例
66
67
  ;
67
- store_1.default.state.MxFun.createMxObject(canvasId, drawName, function (mxDraw) {
68
+ store_1.default.state.MxFun.createMxObject(canvasId, cadFile, function (mxDraw) {
68
69
  var mxdrawObj = new MxDrawObject_1.default(mxDraw);
69
70
  mxDraw.setMouseRightRotate(false);
70
71
  mxDraw.setIniset({ EnableOsnapFunction: true });
@@ -75,12 +76,14 @@ var MxFun = /** @class */ (function () {
75
76
  height: canvasParent.clientHeight
76
77
  };
77
78
  });
79
+ // 使用canvas侦听器 监听canvas元素的大小变化
80
+ (0, useCanvasResizeListener_1.default)(mxdrawObj, canvas);
78
81
  callback &&
79
82
  callback(mxdrawObj, {
80
83
  canvas: canvas,
81
84
  canvasParent: canvasParent
82
85
  });
83
- }, isNewFile);
86
+ }, undefined, isNewFile, useWebsocket);
84
87
  };
85
88
  /**
86
89
  * 为程序设置服务器地址
@@ -166,7 +169,7 @@ var MxFun = /** @class */ (function () {
166
169
  * @example
167
170
  * ``` typescript
168
171
  * Mx.MxFun.call("getDrawObject", {
169
- * drawName: "test.dwg"
172
+ * cadFile: "test.dwg"
170
173
  * }, (res)=> {
171
174
  * console.log(res)
172
175
  * })
@@ -200,6 +203,32 @@ var MxFun = /** @class */ (function () {
200
203
  MxFun.prototype.screenCoordLong2World = function (len) {
201
204
  return store_1.default.state.MxFun.screenCoordLong2World(len);
202
205
  };
206
+ /**
207
+ * 屏幕坐标长度转文档坐标长度
208
+ * @param len 屏幕坐标长度
209
+ * @return number 文档坐标长度
210
+ * @example
211
+ * ``` typescript
212
+ * const len = Mx.MxFun.screenCoordLong2Doc(36)
213
+ * console.log(len)
214
+ * ```
215
+ */
216
+ MxFun.prototype.screenCoordLong2Doc = function (len) {
217
+ return store_1.default.state.MxFun.screenCoordLong2Doc(len);
218
+ };
219
+ /**
220
+ * 文档坐标长度转屏幕坐标长度
221
+ * @param len 文档坐标长度
222
+ * @return number 屏幕坐标长度
223
+ * @example
224
+ * ``` typescript
225
+ * const len = Mx.MxFun.docCoordLong2Screen(36)
226
+ * console.log(len)
227
+ * ```
228
+ */
229
+ MxFun.prototype.docCoordLong2Screen = function (len) {
230
+ return store_1.default.state.MxFun.docCoordLong2Screen(len);
231
+ };
203
232
  /**
204
233
  * THREE.JS坐标长度转屏幕坐标长度
205
234
  * @param len THREE.JS坐标长度
@@ -213,6 +242,18 @@ var MxFun = /** @class */ (function () {
213
242
  MxFun.prototype.worldCoordLong2Doc = function (len) {
214
243
  return store_1.default.state.MxFun.worldCoordLong2Doc(len);
215
244
  };
245
+ /**
246
+ * DWG文档坐标长度到ThreeJS坐标长度
247
+ * @returns number
248
+ * @example
249
+ * ```typescript
250
+ *
251
+ *
252
+ * ```
253
+ */
254
+ MxFun.prototype.docCoordLong2World = function (l) {
255
+ return store_1.default.state.MxFun.docCoordLong2World(l);
256
+ };
216
257
  /**
217
258
  * 屏幕坐标转THREE.JS坐标.
218
259
  * @param x 坐标x
@@ -229,7 +270,7 @@ var MxFun = /** @class */ (function () {
229
270
  return store_1.default.state.MxFun.screenCoord2World(x, y, z);
230
271
  };
231
272
  /**
232
- * THREE.JS坐标转屏幕坐标.
273
+ * THREE.JS坐标转屏幕坐标.,屏幕坐标的Y轴向下。坐标原点在左上角.
233
274
  * @param x 坐标x
234
275
  * @param y 坐标y
235
276
  * @param z 坐标z
@@ -245,6 +286,7 @@ var MxFun = /** @class */ (function () {
245
286
  };
246
287
  /**
247
288
  * 文档坐标转THREE.JS坐标
289
+ * 说明: 文档坐标,THREE.JS坐标的X轴都是从左到右,Y轴是下到上,但是屏幕像素坐标系:X轴都是从左到右,Y轴是上到下
248
290
  * @param x 坐标x
249
291
  * @param y 坐标y
250
292
  * @param z 坐标z
@@ -285,8 +327,8 @@ var MxFun = /** @class */ (function () {
285
327
  * console.log(vector3)
286
328
  * ```
287
329
  */
288
- MxFun.prototype.screenCoord2Doc = function (x, y, z) {
289
- return store_1.default.state.MxFun.screenCoord2Doc(x, y, z);
330
+ MxFun.prototype.screenCoord2Doc = function (x, y) {
331
+ return store_1.default.state.MxFun.screenCoord2Doc(x, y, 0);
290
332
  };
291
333
  /**
292
334
  * 文档转屏幕坐标.
@@ -300,8 +342,8 @@ var MxFun = /** @class */ (function () {
300
342
  * console.log(vector3)
301
343
  * ```
302
344
  */
303
- MxFun.prototype.docCoord2Screen = function (x, y, z) {
304
- return store_1.default.state.MxFun.docCoord2Screen(x, y, z);
345
+ MxFun.prototype.docCoord2Screen = function (x, y) {
346
+ return store_1.default.state.MxFun.docCoord2Screen(x, y, 0);
305
347
  };
306
348
  /**
307
349
  * 更新显示,使用Three.js绘制了对象,调用该函数更新显示。
@@ -463,7 +505,7 @@ var MxFun = /** @class */ (function () {
463
505
  return 5 + 6;
464
506
  };
465
507
  /**
466
- * 加载一个Image对象。
508
+ * 加载一个图片对象,返回Three.js材质对象,该函数具有缓存功能,下次加载同样的图片,可以直接返回.
467
509
  * @param p
468
510
  * @return any
469
511
  * @example
@@ -471,10 +513,51 @@ var MxFun = /** @class */ (function () {
471
513
  *
472
514
  * ```
473
515
  */
474
- MxFun.prototype.loadImage = function (imageUrlPath, callResult) {
475
- return store_1.default.state.MxFun.loadImage(imageUrlPath, callResult);
516
+ MxFun.prototype.loadImageMaterial = function (imageUrlPath, callResult) {
517
+ return store_1.default.state.MxFun.loadImageMaterial(imageUrlPath, callResult);
518
+ };
519
+ /**
520
+ * 判断点是否在一个闭合的多边形区域。
521
+ * @param p
522
+ * @return any
523
+ * @example
524
+ * ``` typescript
525
+ * let aryPoint:Array<THREE.Vector3> = [];
526
+ * aryPoint.push(new THREE.Vector3(0,0,0));
527
+ * aryPoint.push(new THREE.Vector3(0,100,0));
528
+ * aryPoint.push(new THREE.Vector3(100,100,0));
529
+ * aryPoint.push(new THREE.Vector3(100,0,0));
530
+ * let pt:THREE.Vector3 = new THREE.Vector3(150,150);
531
+ * if(MxFun.pointInPolyline(pt,aryPoint) ){
532
+ * console.log("in");
533
+ * }
534
+ * ```
535
+ */
536
+ MxFun.prototype.pointInPolyline = function (pt, vecPolyline) {
537
+ return store_1.default.state.MxFun.pointInPolyline(pt, vecPolyline);
538
+ };
539
+ /**
540
+ * 计算多边形区域的面积
541
+ * @param p
542
+ * @return any
543
+ * @example
544
+ * ``` typescript
545
+ * ```
546
+ */
547
+ MxFun.prototype.calcArea = function (aryPoint) {
548
+ return store_1.default.state.MxFun.calcArea(aryPoint);
549
+ };
550
+ /**
551
+ * 重新打开cad文件,该函数在控件创建完后,需要再次重新打开文件,调用。
552
+ * @param sFile 打的cad文件路径
553
+ * @return any
554
+ * @example
555
+ * ``` typescript
556
+ * ```
557
+ */
558
+ MxFun.prototype.openFile = function (sFile) {
559
+ return store_1.default.state.MxFun.openFile(sFile);
476
560
  };
477
561
  return MxFun;
478
562
  }());
479
563
  exports.default = MxFun;
480
- //# sourceMappingURL=MxFun.js.map
@@ -7,4 +7,3 @@ var MxFun_1 = require("./MxFun");
7
7
  // loadCoreCode()
8
8
  // }
9
9
  exports.default = new MxFun_1.default();
10
- //# sourceMappingURL=index.js.map
@@ -1,5 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ ///////////////////////////////////////////////////////////////////////////////
4
+ //版权所有(C)2002-2022,成都梦想凯德科技有限公司。
5
+ //本软件代码及其文档和相关资料归成都梦想凯德科技有限公司,应用包含本软件的程序必须包括以下版权声明
6
+ //此应用程序与成都梦想凯德科技有限公司成协议。通过使用本软件、其文档或相关材料
7
+ ///////////////////////////////////////////////////////////////////////////////
3
8
  var three_1 = require("three");
4
9
  var math_1 = require("../../tools/algorithm/math");
5
10
  var formatting_1 = require("../../tools/formatting");
@@ -139,8 +144,8 @@ var MxThreeJS = /** @class */ (function () {
139
144
  context.font = sFont;
140
145
  context.textAlign = 'center';
141
146
  context.textBaseline = 'middle';
142
- var sColor = (0, formatting_1.formatString)('#{0}', iColor.toString(16));
143
- context.fillStyle = sColor;
147
+ context.fillStyle = (0, formatting_1.formatString)('rgba({0}, {1}, {2}, 1.0)', ((iColor >> 16) & 0xff) + '', ((iColor >> 8) & 0xff) + '', (iColor & 0xff) + '');
148
+ //const sColor = formatString('#{0}', iColor.toString(16))
144
149
  context.fillText(message, textWidth / 2, textHeight / 2);
145
150
  var texture = new three_1.Texture(canvas);
146
151
  texture.needsUpdate = true;
@@ -241,7 +246,7 @@ var MxThreeJS = /** @class */ (function () {
241
246
  };
242
247
  /**
243
248
  * 创建Image
244
- * @param pos 图片位置
249
+ * @param pos 图片中心点位置,屏幕坐标,屏幕坐标的Y轴向上。坐标原点在左下角.
245
250
  * @param w 图片宽度
246
251
  * @param h 图片高度
247
252
  * @param imageUrlPath 图片URl地址
@@ -255,38 +260,9 @@ var MxThreeJS = /** @class */ (function () {
255
260
  * ```
256
261
  */
257
262
  MxThreeJS.prototype.createImage = function (pos, w, h, imageUrlPath, callResult) { };
258
- // createImage(pos:Vector3,w:number,h:number,imageUrlPath:string,callResult:(mesh:Mesh | null)=>void): void{
259
- // new TextureLoader().load(
260
- // imageUrlPath,
261
- // function (texture) {
262
- // let geometry = new PlaneGeometry(w, w);
263
- // // 测试 transparent: true,打开,renderOrder才管用。
264
- // let materialTexture = new MeshLambertMaterial({
265
- // map: texture,
266
- // transparent: true,
267
- // side: DoubleSide
268
- // });
269
- // if(materialTexture.map)
270
- // materialTexture.map.needsUpdate = true;
271
- // setGeometryPostion(geometry,pos);
272
- // //var mesh = new Mesh(geometry, material);
273
- // let mesh:any = new Mesh(geometry, materialTexture);
274
- // mesh.material["depthTest"]=false;
275
- // //mesh.renderOrder = renderOrder;
276
- // callResult(mesh);
277
- // },
278
- // undefined,
279
- // function (err) {
280
- // console.log(err)
281
- // callResult(null);
282
- // });
283
- // }
284
263
  /**
285
264
  * 加载SVG
286
- * @param url SVG路径地址
287
- * @param x X轴位置
288
- * @param y Y轴位置
289
- * @param scale 缩放比
265
+ * @param url SVG路径地址,该函数具有缓存功能,下次加载同样的图片,可以直接返回.
290
266
  * @param color 颜色
291
267
  * @param callResult SVG加载完成的回调 回调参数:THREE.Object3D和Array<THREE.MeshBasicMaterial>
292
268
  * @returns void
@@ -297,8 +273,7 @@ var MxThreeJS = /** @class */ (function () {
297
273
  * })
298
274
  * ```
299
275
  */
300
- MxThreeJS.prototype.loadSVG = function (url, x, y, scale, color, callResult) { };
276
+ MxThreeJS.prototype.loadSVG = function (url, color, callResult) { };
301
277
  return MxThreeJS;
302
278
  }());
303
279
  exports.default = MxThreeJS;
304
- //# sourceMappingURL=MxThreeJS.js.map