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.
- package/LICENSE +1 -0
- package/README.md +74 -169
- package/dist/lib/MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass.js +22 -11
- package/dist/lib/MxModule/McEdGetPointWorldDrawObject/index.js +0 -1
- package/dist/lib/MxModule/McGiWorldDraw/McGiWorldDraw.js +2 -0
- package/dist/lib/MxModule/McGiWorldDraw/index.js +2 -0
- package/dist/lib/MxModule/McGiWorldDrawType/McGiWorldDrawType.js +19 -0
- package/dist/lib/MxModule/McGiWorldDrawType/index.js +4 -0
- package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/MrxDbgUiPrBaseReturn.js +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/index.js +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass.js +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrPoint/index.js +0 -1
- package/dist/lib/MxModule/MxDbEntity/MxDbEntity.js +174 -0
- package/dist/lib/MxModule/MxDbEntity/index.js +5 -0
- package/dist/lib/MxModule/MxDrawObject/MxDrawObject.js +401 -27
- package/dist/lib/MxModule/MxDrawObject/index.js +0 -1
- package/dist/lib/MxModule/MxFun/MxFun.js +84 -22
- package/dist/lib/MxModule/MxFun/index.js +0 -1
- package/dist/lib/MxModule/MxThreeJS/MxThreeJS.js +5 -35
- package/dist/lib/MxModule/MxThreeJS/MxThreeJS.mixin.js +71 -29
- package/dist/lib/MxModule/MxThreeJS/SVGLoader.js +4 -5
- package/dist/lib/MxModule/MxThreeJS/index.js +0 -1
- package/dist/lib/MxModule/MxType/MxType.js +27 -0
- package/dist/lib/MxModule/MxType/index.js +4 -0
- package/dist/lib/MxModule/loadCoreCode/index.js +0 -1
- package/dist/lib/MxModule/loadCoreCode/loadCoreCode.js +48 -41
- package/dist/lib/MxModule/loadCoreCode/mxfun.es5.js +1164 -943
- package/dist/lib/MxModule/store/PubsubClass.js +0 -1
- package/dist/lib/MxModule/store/StoreClass.js +0 -1
- package/dist/lib/MxModule/store/index.js +0 -1
- package/dist/lib/MxModule/store/store.js +0 -1
- package/dist/lib/MxModule/useCanvasResizeListener/index.js +0 -1
- package/dist/lib/MxModule/useCanvasResizeListener/useCanvasResizeListener.js +77 -25
- package/dist/lib/doc.js +5 -2
- package/dist/lib/mxdraw.js +12 -4
- package/dist/lib/tools/algorithm/math.js +0 -1
- package/dist/lib/tools/algorithm/random.js +0 -1
- package/dist/lib/tools/dom/create.js +0 -1
- package/dist/lib/tools/dynamicImport/index.js +142 -0
- package/dist/lib/tools/formatting/index.js +0 -1
- package/dist/lib/tools/proxy/index.js +0 -1
- package/dist/lib/tools/three/index.js +0 -1
- package/dist/lib/types/McEdGetPointWorldDrawObject.js +2 -0
- package/dist/lib/types/MrxDbgUiPrPoint.js +2 -0
- package/dist/lib/types/MxCADObject.js +3 -0
- package/dist/lib/types/MxDrawObject.js +2 -0
- package/dist/lib/types/MxFun.js +2 -0
- package/dist/mxdraw.es5.js +28 -3
- package/dist/mxdraw.es5.js.map +1 -1
- package/dist/mxdraw.umd.js +29 -4
- package/dist/mxdraw.umd.js.map +1 -1
- package/dist/types/MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass.d.ts +12 -2
- package/dist/types/MxModule/McGiWorldDraw/McGiWorldDraw.d.ts +227 -0
- package/dist/types/MxModule/McGiWorldDraw/index.d.ts +2 -0
- package/dist/types/MxModule/McGiWorldDrawType/McGiWorldDrawType.d.ts +16 -0
- package/dist/types/MxModule/McGiWorldDrawType/index.d.ts +2 -0
- package/dist/types/MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass.d.ts +1 -1
- package/dist/types/MxModule/MxDbEntity/MxDbEntity.d.ts +198 -0
- package/dist/types/MxModule/MxDbEntity/index.d.ts +3 -0
- package/dist/types/MxModule/MxDrawObject/MxDrawObject.d.ts +317 -1
- package/dist/types/MxModule/MxFun/MxFun.d.ts +66 -20
- package/dist/types/MxModule/MxThreeJS/MxThreeJS.d.ts +11 -14
- package/dist/types/MxModule/MxType/MxType.d.ts +24 -0
- package/dist/types/MxModule/MxType/index.d.ts +2 -0
- package/dist/types/MxModule/store/store.d.ts +1 -1
- package/dist/types/MxModule/useCanvasResizeListener/useCanvasResizeListener.d.ts +9 -5
- package/dist/types/doc.d.ts +4 -1
- package/dist/types/mxdraw.d.ts +8 -2
- package/dist/types/tools/dynamicImport/index.d.ts +1 -0
- package/dist/types/types/McEdGetPointWorldDrawObject.d.ts +9 -0
- package/dist/types/types/MrxDbgUiPrPoint.d.ts +23 -0
- package/dist/types/types/MxCADObject.d.ts +40 -0
- package/dist/types/types/MxDrawObject.d.ts +57 -0
- package/dist/types/types/MxFun.d.ts +37 -0
- package/package.json +8 -3
- package/dist/lib/MxModule/McEdGetPointWorldDrawObject/McEdGetPointWorldDrawObjectClass.js.map +0 -1
- package/dist/lib/MxModule/McEdGetPointWorldDrawObject/index.js.map +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/MrxDbgUiPrBaseReturn.js.map +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrBaseReturn/index.js.map +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrPoint/MrxDbgUiPrPointClass.js.map +0 -1
- package/dist/lib/MxModule/MrxDbgUiPrPoint/index.js.map +0 -1
- package/dist/lib/MxModule/MxDrawObject/MxDrawObject.js.map +0 -1
- package/dist/lib/MxModule/MxDrawObject/index.js.map +0 -1
- package/dist/lib/MxModule/MxFun/MxFun.js.map +0 -1
- package/dist/lib/MxModule/MxFun/index.js.map +0 -1
- package/dist/lib/MxModule/MxThreeJS/MxThreeJS.js.map +0 -1
- package/dist/lib/MxModule/MxThreeJS/MxThreeJS.mixin.js.map +0 -1
- package/dist/lib/MxModule/MxThreeJS/SVGLoader.js.map +0 -1
- package/dist/lib/MxModule/MxThreeJS/index.js.map +0 -1
- package/dist/lib/MxModule/loadCoreCode/index.js.map +0 -1
- package/dist/lib/MxModule/loadCoreCode/loadCoreCode.js.map +0 -1
- package/dist/lib/MxModule/loadCoreCode/mxfun.es5.js.map +0 -1
- package/dist/lib/MxModule/store/PubsubClass.js.map +0 -1
- package/dist/lib/MxModule/store/StoreClass.js.map +0 -1
- package/dist/lib/MxModule/store/index.js.map +0 -1
- package/dist/lib/MxModule/store/store.js.map +0 -1
- package/dist/lib/MxModule/useCanvasResizeListener/index.js.map +0 -1
- package/dist/lib/MxModule/useCanvasResizeListener/useCanvasResizeListener.js.map +0 -1
- package/dist/lib/doc.js.map +0 -1
- package/dist/lib/mxdraw.js.map +0 -1
- package/dist/lib/tools/algorithm/math.js.map +0 -1
- package/dist/lib/tools/algorithm/random.js.map +0 -1
- package/dist/lib/tools/dom/create.js.map +0 -1
- package/dist/lib/tools/formatting/index.js.map +0 -1
- package/dist/lib/tools/proxy/index.js.map +0 -1
- package/dist/lib/tools/three/index.js.map +0 -1
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
+
if (ar || !(i in from)) {
|
|
5
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
+
ar[i] = from[i];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
var random_1 = require("../../tools/algorithm/random");
|
|
4
13
|
var create_1 = require("../../tools/dom/create");
|
|
5
14
|
var proxy_1 = require("../../tools/proxy");
|
|
6
15
|
var MxDrawObject_1 = require("../MxDrawObject");
|
|
7
16
|
var store_1 = require("../store/store");
|
|
8
|
-
var _mxdrawObj;
|
|
9
17
|
/**
|
|
10
18
|
* MxFun 模块
|
|
11
19
|
* 导出库时已实例化,只需要调用实例方法 例如:
|
|
@@ -22,7 +30,7 @@ var MxFun = /** @class */ (function () {
|
|
|
22
30
|
* 创建图纸展示控件实例
|
|
23
31
|
* @param canvasId 提供一个canvas元素或者唯一的ID或者class类亦或者Jquery选中的元素
|
|
24
32
|
* @paramType string | HTMLCanvasElement | JQuery<HTMLElement>
|
|
25
|
-
* @param
|
|
33
|
+
* @param cadFile 提供要展示的图纸名称
|
|
26
34
|
* @paramType string
|
|
27
35
|
* @param callback 图纸展示控件创建完成后的回调函数 回调参数mxDraw和dom
|
|
28
36
|
* @paramType function
|
|
@@ -33,7 +41,7 @@ var MxFun = /** @class */ (function () {
|
|
|
33
41
|
* ``` typescript
|
|
34
42
|
* Mx.MxFun.createMxObject({
|
|
35
43
|
* canvasId: "my-app",
|
|
36
|
-
*
|
|
44
|
+
* cadFile: "test2.dwg",
|
|
37
45
|
* callback(mxDraw, { canvas, canvasParent }) {
|
|
38
46
|
* console.log(mxDraw, canvas, canvasParent)
|
|
39
47
|
* },
|
|
@@ -42,8 +50,7 @@ var MxFun = /** @class */ (function () {
|
|
|
42
50
|
* ```
|
|
43
51
|
*/
|
|
44
52
|
MxFun.prototype.createMxObject = function (_a) {
|
|
45
|
-
var
|
|
46
|
-
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;
|
|
53
|
+
var _b = _a.canvasId, canvasId = _b === void 0 ? (0, random_1.createReandomId)() : _b, _c = _a.cadFile, cadFile = _c === void 0 ? 'test2.dwg' : _c, callback = _a.callback, _d = _a.isNewFile, isNewFile = _d === void 0 ? true : _d;
|
|
47
54
|
// 获取canvas和其父级
|
|
48
55
|
var canvas = (0, create_1.createCanvas)(canvasId);
|
|
49
56
|
var canvasParent = (0, create_1.createCanvasParent)(canvas);
|
|
@@ -57,8 +64,8 @@ var MxFun = /** @class */ (function () {
|
|
|
57
64
|
// canvasParent.style.position = 'relative';
|
|
58
65
|
// 创建实例
|
|
59
66
|
;
|
|
60
|
-
store_1.default.state.MxFun.createMxObject(canvasId,
|
|
61
|
-
|
|
67
|
+
store_1.default.state.MxFun.createMxObject(canvasId, cadFile, function (mxDraw) {
|
|
68
|
+
var mxdrawObj = new MxDrawObject_1.default(mxDraw);
|
|
62
69
|
mxDraw.setMouseRightRotate(false);
|
|
63
70
|
mxDraw.setIniset({ EnableOsnapFunction: true });
|
|
64
71
|
mxDraw.addEvent('onResize', function () {
|
|
@@ -69,7 +76,7 @@ var MxFun = /** @class */ (function () {
|
|
|
69
76
|
};
|
|
70
77
|
});
|
|
71
78
|
callback &&
|
|
72
|
-
callback
|
|
79
|
+
callback(mxdrawObj, {
|
|
73
80
|
canvas: canvas,
|
|
74
81
|
canvasParent: canvasParent
|
|
75
82
|
});
|
|
@@ -143,7 +150,12 @@ var MxFun = /** @class */ (function () {
|
|
|
143
150
|
* ```
|
|
144
151
|
*/
|
|
145
152
|
MxFun.prototype.sendStringToExecute = function (cmdName) {
|
|
146
|
-
|
|
153
|
+
var _a;
|
|
154
|
+
var ages = [];
|
|
155
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
156
|
+
ages[_i - 1] = arguments[_i];
|
|
157
|
+
}
|
|
158
|
+
return (_a = store_1.default.state.MxFun).sendStringToExecute.apply(_a, __spreadArray([cmdName], ages, false));
|
|
147
159
|
};
|
|
148
160
|
/**
|
|
149
161
|
* 调用后台服务程序中的NodeJS用户定义函数 后台程序使用Mx.MxFun.registFun注册用户定义函数
|
|
@@ -154,7 +166,7 @@ var MxFun = /** @class */ (function () {
|
|
|
154
166
|
* @example
|
|
155
167
|
* ``` typescript
|
|
156
168
|
* Mx.MxFun.call("getDrawObject", {
|
|
157
|
-
*
|
|
169
|
+
* cadFile: "test.dwg"
|
|
158
170
|
* }, (res)=> {
|
|
159
171
|
* console.log(res)
|
|
160
172
|
* })
|
|
@@ -173,8 +185,7 @@ var MxFun = /** @class */ (function () {
|
|
|
173
185
|
* ```
|
|
174
186
|
*/
|
|
175
187
|
MxFun.prototype.getCurrentDraw = function () {
|
|
176
|
-
return
|
|
177
|
-
// return (store.state.MxFun as MxFunType).getCurrentDraw()
|
|
188
|
+
return new MxDrawObject_1.default(store_1.default.state.MxFun.getCurrentDraw());
|
|
178
189
|
};
|
|
179
190
|
/**
|
|
180
191
|
* 屏幕坐标长度转THREE.JS坐标长度
|
|
@@ -202,6 +213,18 @@ var MxFun = /** @class */ (function () {
|
|
|
202
213
|
MxFun.prototype.worldCoordLong2Doc = function (len) {
|
|
203
214
|
return store_1.default.state.MxFun.worldCoordLong2Doc(len);
|
|
204
215
|
};
|
|
216
|
+
/**
|
|
217
|
+
* DWG文档坐标长度到ThreeJS坐标长度
|
|
218
|
+
* @returns number
|
|
219
|
+
* @example
|
|
220
|
+
* ```typescript
|
|
221
|
+
*
|
|
222
|
+
*
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
MxFun.prototype.docCoordLong2World = function (l) {
|
|
226
|
+
return store_1.default.state.MxFun.docCoordLong2World(l);
|
|
227
|
+
};
|
|
205
228
|
/**
|
|
206
229
|
* 屏幕坐标转THREE.JS坐标.
|
|
207
230
|
* @param x 坐标x
|
|
@@ -218,7 +241,7 @@ var MxFun = /** @class */ (function () {
|
|
|
218
241
|
return store_1.default.state.MxFun.screenCoord2World(x, y, z);
|
|
219
242
|
};
|
|
220
243
|
/**
|
|
221
|
-
* THREE.JS
|
|
244
|
+
* THREE.JS坐标转屏幕坐标.,屏幕坐标的Y轴向下。坐标原点在左上角.
|
|
222
245
|
* @param x 坐标x
|
|
223
246
|
* @param y 坐标y
|
|
224
247
|
* @param z 坐标z
|
|
@@ -234,6 +257,7 @@ var MxFun = /** @class */ (function () {
|
|
|
234
257
|
};
|
|
235
258
|
/**
|
|
236
259
|
* 文档坐标转THREE.JS坐标
|
|
260
|
+
* 说明: 文档坐标,THREE.JS坐标的X轴都是从左到右,Y轴是下到上,但是屏幕像素坐标系:X轴都是从左到右,Y轴是上到下
|
|
237
261
|
* @param x 坐标x
|
|
238
262
|
* @param y 坐标y
|
|
239
263
|
* @param z 坐标z
|
|
@@ -383,8 +407,8 @@ var MxFun = /** @class */ (function () {
|
|
|
383
407
|
* ```
|
|
384
408
|
*/
|
|
385
409
|
MxFun.prototype.getCurrentMxCAD = function () {
|
|
386
|
-
|
|
387
|
-
|
|
410
|
+
// 暂时还没有实现。
|
|
411
|
+
return store_1.default.state.MxFun.getCurrentMxCAD();
|
|
388
412
|
};
|
|
389
413
|
/**
|
|
390
414
|
* 得到地址栏参数
|
|
@@ -399,18 +423,14 @@ var MxFun = /** @class */ (function () {
|
|
|
399
423
|
return store_1.default.state.MxFun.getQueryString(name);
|
|
400
424
|
};
|
|
401
425
|
/**
|
|
402
|
-
* 设置控件的配制参数.
|
|
426
|
+
* 设置控件的配制参数.
|
|
403
427
|
* @param name
|
|
404
|
-
* @return
|
|
428
|
+
* @return object 配制参数.
|
|
405
429
|
* @example
|
|
406
430
|
* ``` typescript
|
|
407
|
-
* Mx.MxFun.createMxObject({
|
|
408
|
-
* callback() {
|
|
409
431
|
* Mx.MxFun.setIniset({
|
|
410
432
|
* EnableIntelliSelect: true
|
|
411
433
|
* })
|
|
412
|
-
* }
|
|
413
|
-
* })
|
|
414
434
|
* ```
|
|
415
435
|
*/
|
|
416
436
|
MxFun.prototype.setIniset = function (iniObj) {
|
|
@@ -455,7 +475,49 @@ var MxFun = /** @class */ (function () {
|
|
|
455
475
|
MxFun.prototype.testMX = function (p) {
|
|
456
476
|
return 5 + 6;
|
|
457
477
|
};
|
|
478
|
+
/**
|
|
479
|
+
* 加载一个图片对象,返回Three.js材质对象,该函数具有缓存功能,下次加载同样的图片,可以直接返回.
|
|
480
|
+
* @param p
|
|
481
|
+
* @return any
|
|
482
|
+
* @example
|
|
483
|
+
* ``` typescript
|
|
484
|
+
*
|
|
485
|
+
* ```
|
|
486
|
+
*/
|
|
487
|
+
MxFun.prototype.loadImageMaterial = function (imageUrlPath, callResult) {
|
|
488
|
+
return store_1.default.state.MxFun.loadImageMaterial(imageUrlPath, callResult);
|
|
489
|
+
};
|
|
490
|
+
/**
|
|
491
|
+
* 判断点是否在一个闭合的多边形区域。
|
|
492
|
+
* @param p
|
|
493
|
+
* @return any
|
|
494
|
+
* @example
|
|
495
|
+
* ``` typescript
|
|
496
|
+
* let aryPoint:Array<THREE.Vector3> = [];
|
|
497
|
+
* aryPoint.push(new THREE.Vector3(0,0,0));
|
|
498
|
+
* aryPoint.push(new THREE.Vector3(0,100,0));
|
|
499
|
+
* aryPoint.push(new THREE.Vector3(100,100,0));
|
|
500
|
+
* aryPoint.push(new THREE.Vector3(100,0,0));
|
|
501
|
+
* let pt:THREE.Vector3 = new THREE.Vector3(150,150);
|
|
502
|
+
* if(MxFun.pointInPolyline(pt,aryPoint) ){
|
|
503
|
+
* console.log("in");
|
|
504
|
+
* }
|
|
505
|
+
* ```
|
|
506
|
+
*/
|
|
507
|
+
MxFun.prototype.pointInPolyline = function (pt, vecPolyline) {
|
|
508
|
+
return store_1.default.state.MxFun.pointInPolyline(pt, vecPolyline);
|
|
509
|
+
};
|
|
510
|
+
/**
|
|
511
|
+
* 计算多边形区域的面积
|
|
512
|
+
* @param p
|
|
513
|
+
* @return any
|
|
514
|
+
* @example
|
|
515
|
+
* ``` typescript
|
|
516
|
+
* ```
|
|
517
|
+
*/
|
|
518
|
+
MxFun.prototype.calcArea = function (aryPoint) {
|
|
519
|
+
return store_1.default.state.MxFun.calcArea(aryPoint);
|
|
520
|
+
};
|
|
458
521
|
return MxFun;
|
|
459
522
|
}());
|
|
460
523
|
exports.default = MxFun;
|
|
461
|
-
//# sourceMappingURL=MxFun.js.map
|
|
@@ -139,8 +139,8 @@ var MxThreeJS = /** @class */ (function () {
|
|
|
139
139
|
context.font = sFont;
|
|
140
140
|
context.textAlign = 'center';
|
|
141
141
|
context.textBaseline = 'middle';
|
|
142
|
-
|
|
143
|
-
|
|
142
|
+
context.fillStyle = (0, formatting_1.formatString)('rgba({0}, {1}, {2}, 1.0)', ((iColor >> 16) & 0xff) + "", ((iColor >> 8) & 0xff) + "", (iColor & 0xff) + "");
|
|
143
|
+
//const sColor = formatString('#{0}', iColor.toString(16))
|
|
144
144
|
context.fillText(message, textWidth / 2, textHeight / 2);
|
|
145
145
|
var texture = new three_1.Texture(canvas);
|
|
146
146
|
texture.needsUpdate = true;
|
|
@@ -241,7 +241,7 @@ var MxThreeJS = /** @class */ (function () {
|
|
|
241
241
|
};
|
|
242
242
|
/**
|
|
243
243
|
* 创建Image
|
|
244
|
-
* @param pos
|
|
244
|
+
* @param pos 图片中心点位置,屏幕坐标,屏幕坐标的Y轴向上。坐标原点在左下角.
|
|
245
245
|
* @param w 图片宽度
|
|
246
246
|
* @param h 图片高度
|
|
247
247
|
* @param imageUrlPath 图片URl地址
|
|
@@ -255,38 +255,9 @@ var MxThreeJS = /** @class */ (function () {
|
|
|
255
255
|
* ```
|
|
256
256
|
*/
|
|
257
257
|
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
258
|
/**
|
|
285
259
|
* 加载SVG
|
|
286
|
-
* @param url SVG
|
|
287
|
-
* @param x X轴位置
|
|
288
|
-
* @param y Y轴位置
|
|
289
|
-
* @param scale 缩放比
|
|
260
|
+
* @param url SVG路径地址,该函数具有缓存功能,下次加载同样的图片,可以直接返回.
|
|
290
261
|
* @param color 颜色
|
|
291
262
|
* @param callResult SVG加载完成的回调 回调参数:THREE.Object3D和Array<THREE.MeshBasicMaterial>
|
|
292
263
|
* @returns void
|
|
@@ -297,8 +268,7 @@ var MxThreeJS = /** @class */ (function () {
|
|
|
297
268
|
* })
|
|
298
269
|
* ```
|
|
299
270
|
*/
|
|
300
|
-
MxThreeJS.prototype.loadSVG = function (url,
|
|
271
|
+
MxThreeJS.prototype.loadSVG = function (url, color, callResult) { };
|
|
301
272
|
return MxThreeJS;
|
|
302
273
|
}());
|
|
303
274
|
exports.default = MxThreeJS;
|
|
304
|
-
//# sourceMappingURL=MxThreeJS.js.map
|
|
@@ -4,39 +4,23 @@ var three_1 = require("three");
|
|
|
4
4
|
// import { SVGLoader } from 'three/examples/jsm/loaders/SVGLoader'
|
|
5
5
|
var SVGLoader_1 = require("./SVGLoader");
|
|
6
6
|
var three_2 = require("../../tools/three");
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
new three_1.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
(0, three_2.setGeometryPostion)(geometry, pos);
|
|
20
|
-
//var mesh = new Mesh(geometry, material);
|
|
21
|
-
var mesh = new three_1.Mesh(geometry, materialTexture);
|
|
22
|
-
mesh.material['depthTest'] = false;
|
|
23
|
-
//mesh.renderOrder = renderOrder;
|
|
24
|
-
callResult && callResult(mesh);
|
|
25
|
-
}, undefined, function (err) {
|
|
26
|
-
console.log(err);
|
|
27
|
-
callResult && callResult(null);
|
|
28
|
-
});
|
|
29
|
-
};
|
|
30
|
-
MxThreeJS.loadSVG = function (url, x, y, scale, color, callResult) {
|
|
7
|
+
var MxThreeJSSVGData = /** @class */ (function () {
|
|
8
|
+
function MxThreeJSSVGData() {
|
|
9
|
+
this.svg = new three_1.Group();
|
|
10
|
+
this.aryMeterial = [];
|
|
11
|
+
}
|
|
12
|
+
return MxThreeJSSVGData;
|
|
13
|
+
}());
|
|
14
|
+
var MxThreeJSBuffer = /** @class */ (function () {
|
|
15
|
+
function MxThreeJSBuffer() {
|
|
16
|
+
this.mapSvgUrlToData = new Map();
|
|
17
|
+
}
|
|
18
|
+
MxThreeJSBuffer.prototype.loadSVGImp = function (url, color, callResult) {
|
|
31
19
|
var loader = new SVGLoader_1.SVGLoader();
|
|
32
20
|
loader.load(url, function (data) {
|
|
33
21
|
var aryMeterial = [];
|
|
34
22
|
var paths = data.paths;
|
|
35
23
|
var group = new three_1.Group();
|
|
36
|
-
group.scale.multiplyScalar(scale);
|
|
37
|
-
group.position.x = x;
|
|
38
|
-
group.position.y = y;
|
|
39
|
-
group.scale.y *= -1;
|
|
40
24
|
var drawStrokes = true;
|
|
41
25
|
var strokesWireframe = false;
|
|
42
26
|
var drawFillShapes = true;
|
|
@@ -85,8 +69,66 @@ function default_1(MxThreeJS) {
|
|
|
85
69
|
}
|
|
86
70
|
}
|
|
87
71
|
callResult && callResult(group, aryMeterial);
|
|
72
|
+
}, undefined, function () {
|
|
73
|
+
callResult && callResult(null, null);
|
|
74
|
+
});
|
|
75
|
+
};
|
|
76
|
+
MxThreeJSBuffer.prototype.loadSVG = function (url, color, callResult) {
|
|
77
|
+
var _this = this;
|
|
78
|
+
var data = this.mapSvgUrlToData.get(url);
|
|
79
|
+
if (data) {
|
|
80
|
+
if (callResult) {
|
|
81
|
+
if (data == null)
|
|
82
|
+
callResult(null, null);
|
|
83
|
+
else
|
|
84
|
+
callResult(data.svg.clone(), data.aryMeterial);
|
|
85
|
+
}
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
this.loadSVGImp(url, color, function (group, aryMeterial) {
|
|
90
|
+
if (group && aryMeterial) {
|
|
91
|
+
var data_1 = new MxThreeJSSVGData;
|
|
92
|
+
data_1.svg = group;
|
|
93
|
+
data_1.aryMeterial = aryMeterial;
|
|
94
|
+
_this.mapSvgUrlToData.set(url, data_1);
|
|
95
|
+
callResult && callResult(data_1.svg.clone(), data_1.aryMeterial);
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
_this.mapSvgUrlToData.set(url, null);
|
|
99
|
+
callResult && callResult(null, null);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
return MxThreeJSBuffer;
|
|
105
|
+
}());
|
|
106
|
+
function default_1(MxThreeJS) {
|
|
107
|
+
var mxThreeJsBuffer = new MxThreeJSBuffer;
|
|
108
|
+
MxThreeJS.createImage = function (pos, w, h, imageUrlPath, callResult) {
|
|
109
|
+
new three_1.TextureLoader().load(imageUrlPath, function (texture) {
|
|
110
|
+
var geometry = new three_1.PlaneGeometry(w, h);
|
|
111
|
+
// 测试 transparent: true,打开,renderOrder才管用。
|
|
112
|
+
var materialTexture = new three_1.MeshLambertMaterial({
|
|
113
|
+
map: texture,
|
|
114
|
+
transparent: true,
|
|
115
|
+
side: three_1.DoubleSide
|
|
116
|
+
});
|
|
117
|
+
if (materialTexture.map)
|
|
118
|
+
materialTexture.map.needsUpdate = true;
|
|
119
|
+
(0, three_2.setGeometryPostion)(geometry, pos);
|
|
120
|
+
//var mesh = new Mesh(geometry, material);
|
|
121
|
+
var mesh = new three_1.Mesh(geometry, materialTexture);
|
|
122
|
+
mesh.material['depthTest'] = false;
|
|
123
|
+
//mesh.renderOrder = renderOrder;
|
|
124
|
+
callResult && callResult(mesh);
|
|
125
|
+
}, undefined, function (err) {
|
|
126
|
+
console.log(err);
|
|
127
|
+
callResult && callResult(null);
|
|
88
128
|
});
|
|
89
129
|
};
|
|
130
|
+
MxThreeJS.loadSVG = function (url, color, callResult) {
|
|
131
|
+
mxThreeJsBuffer.loadSVG(url, color, callResult);
|
|
132
|
+
};
|
|
90
133
|
}
|
|
91
134
|
exports.default = default_1;
|
|
92
|
-
//# sourceMappingURL=MxThreeJS.mixin.js.map
|
|
@@ -1185,13 +1185,13 @@ var SVGLoader = /** @class */ (function (_super) {
|
|
|
1185
1185
|
var center = new three_1.Vector2();
|
|
1186
1186
|
boundingBox.getCenter(center);
|
|
1187
1187
|
var allIntersections = [];
|
|
1188
|
-
paths.forEach(function (path) {
|
|
1188
|
+
paths && paths.forEach(function (path) {
|
|
1189
1189
|
// check if the center of the bounding box is in the bounding box of the paths.
|
|
1190
1190
|
// this is a pruning method to limit the search of intersections in paths that can't envelop of the current path.
|
|
1191
1191
|
// if a path envelops another path. The center of that oter path, has to be inside the bounding box of the enveloping path.
|
|
1192
1192
|
if (path.boundingBox.containsPoint(center)) {
|
|
1193
1193
|
var intersections = getIntersections(scanline, path.points);
|
|
1194
|
-
intersections.forEach(function (p) {
|
|
1194
|
+
intersections && intersections.forEach(function (p) {
|
|
1195
1195
|
allIntersections.push({ identifier: path.identifier, isCW: path.isCW, point: p });
|
|
1196
1196
|
});
|
|
1197
1197
|
}
|
|
@@ -1307,13 +1307,13 @@ var SVGLoader = /** @class */ (function (_super) {
|
|
|
1307
1307
|
// check if path is solid or a hole
|
|
1308
1308
|
var isAHole = simplePaths.map(function (p) { return isHoleTo(p, simplePaths, scanlineMinX, scanlineMaxX, shapePath.userData.style.fillRule); });
|
|
1309
1309
|
var shapesToReturn = [];
|
|
1310
|
-
simplePaths.forEach(function (p) {
|
|
1310
|
+
simplePaths && simplePaths.forEach(function (p) {
|
|
1311
1311
|
var amIAHole = isAHole[p.identifier];
|
|
1312
1312
|
if (!amIAHole.isHole) {
|
|
1313
1313
|
var shape_1 = new three_1.Shape();
|
|
1314
1314
|
shape_1.curves = p.curves;
|
|
1315
1315
|
var holes = isAHole.filter(function (h) { return h.isHole && h.for === p.identifier; });
|
|
1316
|
-
holes.forEach(function (h) {
|
|
1316
|
+
holes && holes.forEach(function (h) {
|
|
1317
1317
|
var hole = simplePaths[h.identifier];
|
|
1318
1318
|
var path = new three_1.Path();
|
|
1319
1319
|
path.curves = hole.curves;
|
|
@@ -1860,4 +1860,3 @@ var SVGLoader = /** @class */ (function (_super) {
|
|
|
1860
1860
|
return SVGLoader;
|
|
1861
1861
|
}(three_1.Loader));
|
|
1862
1862
|
exports.SVGLoader = SVGLoader;
|
|
1863
|
-
//# sourceMappingURL=SVGLoader.js.map
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/** @module MxType*/
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
/**
|
|
5
|
+
* 动态绘制类型
|
|
6
|
+
* @example ```typescript
|
|
7
|
+
|
|
8
|
+
* ```
|
|
9
|
+
*/
|
|
10
|
+
var MxCloneType;
|
|
11
|
+
(function (MxCloneType) {
|
|
12
|
+
/** 正常Clone */
|
|
13
|
+
MxCloneType[MxCloneType["kClone"] = 1] = "kClone";
|
|
14
|
+
/** 动态拖动Clone */
|
|
15
|
+
MxCloneType[MxCloneType["kDragClone"] = 2] = "kDragClone";
|
|
16
|
+
})(MxCloneType || (MxCloneType = {}));
|
|
17
|
+
var MxCloneType2;
|
|
18
|
+
(function (MxCloneType2) {
|
|
19
|
+
/** 正常Clone */
|
|
20
|
+
MxCloneType2[MxCloneType2["kClone"] = 1] = "kClone";
|
|
21
|
+
/** 动态拖动Clone */
|
|
22
|
+
MxCloneType2[MxCloneType2["kDragClone"] = 2] = "kDragClone";
|
|
23
|
+
})(MxCloneType2 || (MxCloneType2 = {}));
|
|
24
|
+
exports.default = {
|
|
25
|
+
MxCloneType: MxCloneType,
|
|
26
|
+
MxCloneType2: MxCloneType2
|
|
27
|
+
};
|
|
@@ -36,6 +36,8 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
/** @module loadCoreCode */
|
|
40
|
+
var dynamicImport_1 = require("../../tools/dynamicImport");
|
|
39
41
|
var store_1 = require("../store/store");
|
|
40
42
|
var mxfun_es5_js_1 = require("./mxfun.es5.js");
|
|
41
43
|
/**
|
|
@@ -51,51 +53,56 @@ function loadCoreCode() {
|
|
|
51
53
|
var _this = this;
|
|
52
54
|
return __generator(this, function (_a) {
|
|
53
55
|
return [2 /*return*/, new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {
|
|
54
|
-
var
|
|
55
|
-
return __generator(this, function (
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
window.MxUiMain =
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
56
|
+
var _a, _b, e_1;
|
|
57
|
+
return __generator(this, function (_c) {
|
|
58
|
+
switch (_c.label) {
|
|
59
|
+
case 0:
|
|
60
|
+
_c.trys.push([0, 2, , 3]);
|
|
61
|
+
if (store_1.default.state.MxFun) {
|
|
62
|
+
console.error('内部已调用loadCoreCode, 无需重复调用!');
|
|
63
|
+
return [2 /*return*/, rej({
|
|
64
|
+
code: 'error',
|
|
65
|
+
msg: '内部已调用loadCoreCode, 无需重复调用'
|
|
66
|
+
})];
|
|
67
|
+
}
|
|
68
|
+
_a = window;
|
|
69
|
+
_b = window;
|
|
70
|
+
return [4 /*yield*/, (0, dynamicImport_1.dynamicImport)('jquery')];
|
|
71
|
+
case 1:
|
|
72
|
+
_a.$ = _b.jQuery = _c.sent();
|
|
73
|
+
window.MxDocumentReady = undefined;
|
|
74
|
+
window.MxUiMain = function (requireFun) {
|
|
75
|
+
var MxFun = requireFun('./MxFun').MxFun;
|
|
76
|
+
store_1.default.commit('setMxFun', MxFun);
|
|
77
|
+
store_1.default.events.emit('MxUiMain', requireFun);
|
|
78
|
+
window.MxUiMain = undefined;
|
|
79
|
+
};
|
|
80
|
+
// 与MxMain有冲突(执行顺序有问题)
|
|
81
|
+
// window.MxDocumentReady = (requireFun: (path: string) => RequireFunReturnObjectType, mxinit: () => void) => {
|
|
82
|
+
// store.events.emit("MxDocumentReady", requireFun, mxinit)
|
|
83
|
+
// mxinit()
|
|
84
|
+
// }
|
|
85
|
+
window.MxMain = function (requireFun) {
|
|
86
|
+
store_1.default.events.emit('MxMain', requireFun);
|
|
87
|
+
window.MxMain = undefined;
|
|
88
|
+
res();
|
|
89
|
+
return 0;
|
|
90
|
+
};
|
|
91
|
+
// 加载mxfun.min.js,mxfun()相当直接模拟了mxfun.min.js的加载。
|
|
92
|
+
(0, mxfun_es5_js_1.default)();
|
|
93
|
+
return [3 /*break*/, 3];
|
|
94
|
+
case 2:
|
|
95
|
+
e_1 = _c.sent();
|
|
96
|
+
rej({
|
|
97
|
+
code: 'error',
|
|
98
|
+
msg: e_1
|
|
99
|
+
});
|
|
100
|
+
return [3 /*break*/, 3];
|
|
101
|
+
case 3: return [2 /*return*/];
|
|
87
102
|
}
|
|
88
|
-
catch (e) {
|
|
89
|
-
rej({
|
|
90
|
-
code: 'error',
|
|
91
|
-
msg: e
|
|
92
|
-
});
|
|
93
|
-
}
|
|
94
|
-
return [2 /*return*/];
|
|
95
103
|
});
|
|
96
104
|
}); })];
|
|
97
105
|
});
|
|
98
106
|
});
|
|
99
107
|
}
|
|
100
108
|
exports.default = loadCoreCode;
|
|
101
|
-
//# sourceMappingURL=loadCoreCode.js.map
|