mxdraw 0.0.1
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 +7 -0
- package/README.md +0 -0
- package/dist/lib/MxCore/MxDrawObject/MxDrawObject.js +242 -0
- package/dist/lib/MxCore/MxDrawObject/MxDrawObject.js.map +1 -0
- package/dist/lib/MxCore/MxFun/MxFun.js +408 -0
- package/dist/lib/MxCore/MxFun/MxFun.js.map +1 -0
- package/dist/lib/MxCore/MxJigCmdManager/McEdGetPointWorldDrawObjectClass/McEdGetPointWorldDrawObjectClass.js +93 -0
- package/dist/lib/MxCore/MxJigCmdManager/McEdGetPointWorldDrawObjectClass/McEdGetPointWorldDrawObjectClass.js.map +1 -0
- package/dist/lib/MxCore/MxJigCmdManager/MrxDbgUiPrPointClass/MrxDbgUiPrPointClass.js +139 -0
- package/dist/lib/MxCore/MxJigCmdManager/MrxDbgUiPrPointClass/MrxDbgUiPrPointClass.js.map +1 -0
- package/dist/lib/MxCore/MxJigCmdManager/index.js +8 -0
- package/dist/lib/MxCore/MxJigCmdManager/index.js.map +1 -0
- package/dist/lib/MxModule/MxThreeJS/MxThreeJS.js +205 -0
- package/dist/lib/MxModule/MxThreeJS/MxThreeJS.js.map +1 -0
- package/dist/lib/MxModule/MxThreeJS/MxThreeJS.mixin.js +91 -0
- package/dist/lib/MxModule/MxThreeJS/MxThreeJS.mixin.js.map +1 -0
- package/dist/lib/MxModule.js +31 -0
- package/dist/lib/MxModule.js.map +1 -0
- package/dist/lib/mxdraw.js +31 -0
- package/dist/lib/mxdraw.js.map +1 -0
- package/dist/lib/tools/algorithm/math.js +17 -0
- package/dist/lib/tools/algorithm/math.js.map +1 -0
- package/dist/lib/tools/algorithm/random.js +14 -0
- package/dist/lib/tools/algorithm/random.js.map +1 -0
- package/dist/lib/tools/dom/create.js +47 -0
- package/dist/lib/tools/dom/create.js.map +1 -0
- package/dist/lib/tools/formatting/index.js +21 -0
- package/dist/lib/tools/formatting/index.js.map +1 -0
- package/dist/lib/tools/three/index.js +27 -0
- package/dist/lib/tools/three/index.js.map +1 -0
- package/dist/mxdraw.es5.js +112943 -0
- package/dist/mxdraw.es5.js.map +1 -0
- package/dist/mxdraw.umd.js +112951 -0
- package/dist/mxdraw.umd.js.map +1 -0
- package/dist/types/MxCore/MxDrawObject/MxDrawObject.d.ts +195 -0
- package/dist/types/MxCore/MxFun/MxFun.d.ts +328 -0
- package/dist/types/MxCore/MxJigCmdManager/McEdGetPointWorldDrawObjectClass/McEdGetPointWorldDrawObjectClass.d.ts +69 -0
- package/dist/types/MxCore/MxJigCmdManager/MrxDbgUiPrPointClass/MrxDbgUiPrPointClass.d.ts +101 -0
- package/dist/types/MxCore/MxJigCmdManager/index.d.ts +3 -0
- package/dist/types/MxModule/MxThreeJS/MxThreeJS.d.ts +126 -0
- package/dist/types/MxModule/MxThreeJS/MxThreeJS.mixin.d.ts +2 -0
- package/dist/types/MxModule.d.ts +13 -0
- package/dist/types/mxdraw.d.ts +8 -0
- package/dist/types/tools/algorithm/math.d.ts +10 -0
- package/dist/types/tools/algorithm/random.d.ts +6 -0
- package/dist/types/tools/dom/create.d.ts +22 -0
- package/dist/types/tools/formatting/index.d.ts +7 -0
- package/dist/types/tools/three/index.d.ts +11 -0
- package/package.json +127 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
export default class MxDrawObject implements MxDrawObjectType {
|
|
2
|
+
constructor(Mxdraw: MxDrawObjectType);
|
|
3
|
+
/**
|
|
4
|
+
* 获取Three.js绘图场景
|
|
5
|
+
* @returns THREE.Scene
|
|
6
|
+
*/
|
|
7
|
+
getScene(): THREE.Scene;
|
|
8
|
+
/**
|
|
9
|
+
* 获取Three.js相机对象
|
|
10
|
+
* @returns THREE.Camera
|
|
11
|
+
*/
|
|
12
|
+
getCamera(): THREE.Camera;
|
|
13
|
+
/**
|
|
14
|
+
* 设置鼠标按下是否旋视区
|
|
15
|
+
* @param isRotate 是否旋视区
|
|
16
|
+
* @returns void
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* Mx.MxFun.getCurrentDraw().setMouseRightRotate(false)
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
23
|
+
setMouseRightRotate(isRotate?: boolean): void;
|
|
24
|
+
/**
|
|
25
|
+
* 得到全部显示所有图形所需要的显示的范围 ,Three.js的坐标系。world坐标。
|
|
26
|
+
* @returns {minPt: value,maxPt: value}
|
|
27
|
+
* @example
|
|
28
|
+
* ```typescript
|
|
29
|
+
* Mx.MxFun.getCurrentDraw().getFullDisplayRange()
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
getFullDisplayRange(): object;
|
|
33
|
+
/**
|
|
34
|
+
* 获取Canvas对象.
|
|
35
|
+
* @returns HTMLCanvasElement
|
|
36
|
+
*/
|
|
37
|
+
getCanvas(): HTMLCanvasElement;
|
|
38
|
+
/**
|
|
39
|
+
* 通知Three.js更新显示
|
|
40
|
+
* @returns void
|
|
41
|
+
*/
|
|
42
|
+
updateDisplay(): void;
|
|
43
|
+
/**
|
|
44
|
+
* 通知Three.js生成ImgeData显示I数据.
|
|
45
|
+
* @param fn 回调函数或者imageData
|
|
46
|
+
* @param param 函数载荷
|
|
47
|
+
* @returns void
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* Mx.MxFun.getCurrentDraw().createCanvasImageData((imageData)=> {
|
|
51
|
+
* console.log(imageData)
|
|
52
|
+
* })
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
createCanvasImageData(fn: (imageData: string) => void, param?: object): void;
|
|
56
|
+
/**
|
|
57
|
+
* 设置视区背景色,
|
|
58
|
+
* @param color 如0xFFFFFF 白色
|
|
59
|
+
* @returns void
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* Mx.MxFun.getCurrentDraw().setViewColor(0xFFFFFF)
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
setViewColor(color: number): void;
|
|
66
|
+
/**
|
|
67
|
+
* 设置视区背景色,
|
|
68
|
+
* @param width 宽度
|
|
69
|
+
* @param height 宽度
|
|
70
|
+
* @returns void
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* Mx.MxFun.getCurrentDraw().setSize(0xFFFFFF)
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
setSize(width: number, height: number): void;
|
|
77
|
+
/**
|
|
78
|
+
* 获取某屏幕点下的绘制对象,ptMouse是.,
|
|
79
|
+
* @param ptMouse THREE.Vector2 屏幕坐标
|
|
80
|
+
* @returns THREE.Intersection[]
|
|
81
|
+
* @example
|
|
82
|
+
* ```typescript
|
|
83
|
+
* Mx.MxFun.getCurrentDraw().getIntersectObjects(new THREE.Vector2(2, 3))
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
getIntersectObjects(ptMouse: THREE.Vector2): THREE.Intersection[];
|
|
87
|
+
/**
|
|
88
|
+
* 添加THREE.Object3D对象到当前场景
|
|
89
|
+
* @param obj THREE.Object3D
|
|
90
|
+
* @param isAddToSelect 默认值为true 是否把对象添加选择对象集中,调用 getIntersectObjects可以找到
|
|
91
|
+
* @returns void
|
|
92
|
+
* @example
|
|
93
|
+
* ```typescript
|
|
94
|
+
* Mx.MxFun.getCurrentDraw().addObject(new THREE.Object3D(), false)
|
|
95
|
+
* ```
|
|
96
|
+
*/
|
|
97
|
+
addObject(obj: THREE.Object3D, isAddToSelect?: boolean): void;
|
|
98
|
+
/**
|
|
99
|
+
* 删除addObject函数添加的THREE.Object3D对象
|
|
100
|
+
* @param obj THREE.Object3D
|
|
101
|
+
* @param isRemoveSelectObject 默认值为true 删除选择集中的对象
|
|
102
|
+
* @returns void
|
|
103
|
+
* @example
|
|
104
|
+
* ```typescript
|
|
105
|
+
* Mx.MxFun.getCurrentDraw().removeObject(new THREE.Object3D(), false)
|
|
106
|
+
* ```
|
|
107
|
+
*/
|
|
108
|
+
removeObject(obj: THREE.Object3D, isRemoveSelectObject?: boolean): void;
|
|
109
|
+
/**
|
|
110
|
+
* 把视区显示范围恢复到初始显示范围.
|
|
111
|
+
* @returns void
|
|
112
|
+
*/
|
|
113
|
+
zoomInitialStates(): void;
|
|
114
|
+
/**
|
|
115
|
+
* 缩放当前显示范围,它是相对于当前显示范围进行缩放
|
|
116
|
+
* @param scale scale缩放比例
|
|
117
|
+
* @returns void
|
|
118
|
+
* @example
|
|
119
|
+
* ```typescript
|
|
120
|
+
* Mx.MxFun.getCurrentDraw().zoomScale(0.8)
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
zoomScale(scale: number): void;
|
|
124
|
+
/**
|
|
125
|
+
* 把当前显示范围移到指定的显示范围
|
|
126
|
+
* @param minPt 坐标1 THREE.Vector3
|
|
127
|
+
* @param maxPt 坐标2 THREE.Vector3
|
|
128
|
+
* @param isWorld 默认为felse DWG图纸坐标,设置为true是THREEJS坐标
|
|
129
|
+
* @returns void
|
|
130
|
+
* @example
|
|
131
|
+
* ```typescript
|
|
132
|
+
* Mx.MxFun.getCurrentDraw().zoomW(new THREE.Vector3(0,10,10), new THREE.Vector3(3,8,20), true)
|
|
133
|
+
* ```
|
|
134
|
+
*/
|
|
135
|
+
zoomW(minPt: THREE.Vector3, maxPt: THREE.Vector3, isWorld?: boolean): void;
|
|
136
|
+
/**
|
|
137
|
+
* 把当前显示范围移到指定的位置,dCenX,dCenY是DWG图纸坐标。
|
|
138
|
+
* @param minPt DWG图纸坐标1 THREE.Vector3
|
|
139
|
+
* @param maxPt DWG图纸坐标2 THREE.Vector3
|
|
140
|
+
* @returns void
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* Mx.MxFun.getCurrentDraw().zoomCenter(new THREE.Vector3(0,10,10), new THREE.Vector3(3,8,20))
|
|
144
|
+
* ```
|
|
145
|
+
*/
|
|
146
|
+
zoomCenter(dCenX: number, dCenY: number): void;
|
|
147
|
+
/**
|
|
148
|
+
* 初始化控件默认加载后,显示视区范围,默认使用图纸转换时的显示范围。。
|
|
149
|
+
* @param minPt DWG文档坐标1显示区域的左下角 THREE.Vector3
|
|
150
|
+
* @param maxPt DWG文档坐标2显示区域的右上角 THREE.Vector3
|
|
151
|
+
* @returns void
|
|
152
|
+
* @example
|
|
153
|
+
* ```typescript
|
|
154
|
+
* Mx.MxFun.getCurrentDraw().initZoomW(new THREE.Vector3(0,10,10), new THREE.Vector3(3,8,20))
|
|
155
|
+
*
|
|
156
|
+
* ```
|
|
157
|
+
*/
|
|
158
|
+
initZoomW(pt1Doc: THREE.Vector3, pt2Doc: THREE.Vector3): void;
|
|
159
|
+
/**
|
|
160
|
+
* 初始化控件默认加载后,显示视区范围,默认使用图纸转换时的显示范围。。
|
|
161
|
+
* @param minPt DWG文档坐标1显示区域的左下角 THREE.Vector3
|
|
162
|
+
* @param maxPt DWG文档坐标2显示区域的右上角 THREE.Vector3
|
|
163
|
+
* @returns void
|
|
164
|
+
* @example
|
|
165
|
+
* ```typescript
|
|
166
|
+
* Mx.MxFun.getCurrentDraw().addEvent(new THREE.Vector3(0,10,10), new THREE.Vector3(3,8,20))
|
|
167
|
+
*
|
|
168
|
+
* ```
|
|
169
|
+
*/
|
|
170
|
+
/**
|
|
171
|
+
* 控件对象的事件监听
|
|
172
|
+
* @param eventNaem 事件名称
|
|
173
|
+
* @param fun 回调函数
|
|
174
|
+
* @returns void
|
|
175
|
+
* @example
|
|
176
|
+
* ```typescript
|
|
177
|
+
* Mx.MxFun.getCurrentDraw().addEvent("addResizeEvent", ()=> {})
|
|
178
|
+
*
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
addEvent(eventNaem: string, fun: (...parmes: any) => any): void;
|
|
182
|
+
/**
|
|
183
|
+
* INI设置
|
|
184
|
+
* @param options { EnableOsnapFunction: boolean; }
|
|
185
|
+
* @returns void
|
|
186
|
+
* @example
|
|
187
|
+
* ```typescript
|
|
188
|
+
* Mx.MxFun.getCurrentDraw().setIniset(options: { EnableOsnapFunction: true })
|
|
189
|
+
*
|
|
190
|
+
* ```
|
|
191
|
+
*/
|
|
192
|
+
setIniset(options: {
|
|
193
|
+
EnableOsnapFunction: boolean;
|
|
194
|
+
}): void;
|
|
195
|
+
}
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
declare class MxFun {
|
|
2
|
+
constructor(mxFun: MxFunType);
|
|
3
|
+
/**
|
|
4
|
+
* 创建图纸展示控件实例
|
|
5
|
+
* @param canvasId 提供一个canvas元素或者唯一的ID或者class类亦或者Jquery选中的元素
|
|
6
|
+
* @paramType string | HTMLCanvasElement | JQuery<HTMLElement>
|
|
7
|
+
* @param drawName 提供要展示的图纸名称
|
|
8
|
+
* @paramType string
|
|
9
|
+
* @param callback 图纸展示控件创建完成后的回调函数 回调参数mxDraw和dom
|
|
10
|
+
* @paramType function
|
|
11
|
+
* @param isNewFile 是否新建文件
|
|
12
|
+
* @paramType boolean
|
|
13
|
+
* @return void
|
|
14
|
+
* @example
|
|
15
|
+
* ``` typescript
|
|
16
|
+
* Mx.MxFun.createMxObject({
|
|
17
|
+
* canvasId: "my-app",
|
|
18
|
+
* drawName: "test2.dwg",
|
|
19
|
+
* callback(mxDraw, { canvas, canvasParent }) {
|
|
20
|
+
* console.log(mxDraw, canvas, canvasParent)
|
|
21
|
+
* },
|
|
22
|
+
* isNewFile: true
|
|
23
|
+
* })
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
createMxObject({ canvasId, drawName, callback, isNewFile }: {
|
|
27
|
+
canvasId?: string;
|
|
28
|
+
drawName?: string;
|
|
29
|
+
callback?: (mxDraw: MxDrawObjectType, dom: {
|
|
30
|
+
canvas: HTMLCanvasElement;
|
|
31
|
+
canvasParent: CanvasParent;
|
|
32
|
+
}) => void;
|
|
33
|
+
isNewFile?: boolean;
|
|
34
|
+
}): void;
|
|
35
|
+
/**
|
|
36
|
+
* 为程序设置服务器地址
|
|
37
|
+
* @param MXSERVER 服务器地址
|
|
38
|
+
* @return void
|
|
39
|
+
* @example
|
|
40
|
+
* ``` typescript
|
|
41
|
+
* Mx.MxFun.setMxServer("ws://localhost:5090")
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
setMxServer(MXSERVER?: string): void;
|
|
45
|
+
/**
|
|
46
|
+
* 注册命令
|
|
47
|
+
* @param cmdName 命令名
|
|
48
|
+
* @param fun 命令函数
|
|
49
|
+
* @return void
|
|
50
|
+
* @example
|
|
51
|
+
* ``` typescript
|
|
52
|
+
* Mx.MxFun.addCommand("draw", ()=> {
|
|
53
|
+
* console.log("draw")
|
|
54
|
+
* })
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
addCommand(cmdName: string, fun: Function): void;
|
|
58
|
+
/**
|
|
59
|
+
* 执行命令
|
|
60
|
+
* @param cmdName 命令名
|
|
61
|
+
* @return boolean 命令执行成功为true
|
|
62
|
+
* @example
|
|
63
|
+
* ``` typescript
|
|
64
|
+
* if(Mx.MxFun.sendStringToExecute("draw")) {
|
|
65
|
+
* console.log("成功执行draw命令")
|
|
66
|
+
* }
|
|
67
|
+
* ```
|
|
68
|
+
*/
|
|
69
|
+
sendStringToExecute(cmdName: string): boolean;
|
|
70
|
+
/**
|
|
71
|
+
* 调用后台服务程序中的NodeJS用户定义函数 后台程序使用Mx.MxFun.registFun注册用户定义函数
|
|
72
|
+
* @param funName 函数名
|
|
73
|
+
* @param param 函数参数
|
|
74
|
+
* @param retfun 函数返回值回调
|
|
75
|
+
* @return void
|
|
76
|
+
* @example
|
|
77
|
+
* ``` typescript
|
|
78
|
+
* Mx.MxFun.call("getDrawObject", {
|
|
79
|
+
* drawName: "test.dwg"
|
|
80
|
+
* }, (res)=> {
|
|
81
|
+
* console.log(res)
|
|
82
|
+
* })
|
|
83
|
+
* ```
|
|
84
|
+
*/
|
|
85
|
+
call(funName: string, param: any, retfun?: Function): void;
|
|
86
|
+
/**
|
|
87
|
+
* 获取当前绘图控件对象
|
|
88
|
+
* @return MxDrawObjectType 当前绘图控件对象
|
|
89
|
+
* @example
|
|
90
|
+
* ``` typescript
|
|
91
|
+
* const mxDraw = Mx.MxFun.getCurrentDraw()
|
|
92
|
+
* mxDraw.getScene()
|
|
93
|
+
* ```
|
|
94
|
+
*/
|
|
95
|
+
getCurrentDraw(): MxDrawObjectType;
|
|
96
|
+
/**
|
|
97
|
+
* 屏幕坐标长度转THREE.JS坐标长度
|
|
98
|
+
* @param len 屏幕坐标长度
|
|
99
|
+
* @return number THREE.JS坐标长度
|
|
100
|
+
* @example
|
|
101
|
+
* ``` typescript
|
|
102
|
+
* const len = Mx.MxFun.screenCoordLong2World(36)
|
|
103
|
+
* console.log(len)
|
|
104
|
+
* ```
|
|
105
|
+
*/
|
|
106
|
+
screenCoordLong2World(len: number): number;
|
|
107
|
+
/**
|
|
108
|
+
* THREE.JS坐标长度转屏幕坐标长度
|
|
109
|
+
* @param len THREE.JS坐标长度
|
|
110
|
+
* @return number 屏幕坐标长度
|
|
111
|
+
* @example
|
|
112
|
+
* ``` typescript
|
|
113
|
+
* const len = Mx.MxFun.worldCoordLong2Doc(36)
|
|
114
|
+
* console.log(len)
|
|
115
|
+
* ```
|
|
116
|
+
*/
|
|
117
|
+
worldCoordLong2Doc(len: number): number;
|
|
118
|
+
/**
|
|
119
|
+
* 屏幕坐标转THREE.JS坐标.
|
|
120
|
+
* @param x 坐标x
|
|
121
|
+
* @param y 坐标y
|
|
122
|
+
* @param z 坐标z
|
|
123
|
+
* @return THREE.Vector3 THREE.JS坐标
|
|
124
|
+
* @example
|
|
125
|
+
* ``` typescript
|
|
126
|
+
* const vector3 = Mx.MxFun.screenCoord2World(36, 21, 0)
|
|
127
|
+
* console.log(vector3)
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
screenCoord2World(x: number, y: number, z: number): THREE.Vector3;
|
|
131
|
+
/**
|
|
132
|
+
* THREE.JS坐标转屏幕坐标.
|
|
133
|
+
* @param x 坐标x
|
|
134
|
+
* @param y 坐标y
|
|
135
|
+
* @param z 坐标z
|
|
136
|
+
* @return THREE.Vector3 屏幕坐标
|
|
137
|
+
* @example
|
|
138
|
+
* ``` typescript
|
|
139
|
+
* const vector3 = Mx.MxFun.worldCoord2Screen(36, 21, 0)
|
|
140
|
+
* console.log(vector3)
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
worldCoord2Screen(x: number, y: number, z: number): THREE.Vector3;
|
|
144
|
+
/**
|
|
145
|
+
* 文档坐标转THREE.JS坐标
|
|
146
|
+
* @param x 坐标x
|
|
147
|
+
* @param y 坐标y
|
|
148
|
+
* @param z 坐标z
|
|
149
|
+
* @return THREE.Vector3 THREE.JS坐标
|
|
150
|
+
* @example
|
|
151
|
+
* ``` typescript
|
|
152
|
+
* const vector3 = Mx.MxFun.docCoord2World(36, 21, 0)
|
|
153
|
+
* console.log(vector3)
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
docCoord2World(x: number, y: number, z: number): THREE.Vector3;
|
|
157
|
+
/**
|
|
158
|
+
* THREE.JS坐标转文档坐标.
|
|
159
|
+
* @param x 坐标x
|
|
160
|
+
* @param y 坐标y
|
|
161
|
+
* @param z 坐标z
|
|
162
|
+
* @return THREE.Vector3 文档坐标
|
|
163
|
+
* @example
|
|
164
|
+
* ``` typescript
|
|
165
|
+
* const vector3 = Mx.MxFun.worldCoord2Doc(36, 21, 0)
|
|
166
|
+
* console.log(vector3)
|
|
167
|
+
* ```
|
|
168
|
+
*/
|
|
169
|
+
worldCoord2Doc(x: number, y: number, z: number): THREE.Vector3;
|
|
170
|
+
/**
|
|
171
|
+
* 屏幕转文档坐标
|
|
172
|
+
* @param x 坐标x
|
|
173
|
+
* @param y 坐标y
|
|
174
|
+
* @param z 坐标z
|
|
175
|
+
* @return THREE.Vector3 文档坐标
|
|
176
|
+
* @example
|
|
177
|
+
* ``` typescript
|
|
178
|
+
* const vector3 = Mx.MxFun.screenCoord2Doc(36, 21, 0)
|
|
179
|
+
* console.log(vector3)
|
|
180
|
+
* ```
|
|
181
|
+
*/
|
|
182
|
+
screenCoord2Doc(x: number, y: number, z: number): THREE.Vector3;
|
|
183
|
+
/**
|
|
184
|
+
* 文档转屏幕坐标.
|
|
185
|
+
* @param x 坐标x
|
|
186
|
+
* @param y 坐标y
|
|
187
|
+
* @param z 坐标z
|
|
188
|
+
* @return THREE.Vector3 屏幕坐标
|
|
189
|
+
* @example
|
|
190
|
+
* ``` typescript
|
|
191
|
+
* const vector3 = Mx.MxFun.docCoord2Screen(36, 21, 0)
|
|
192
|
+
* console.log(vector3)
|
|
193
|
+
* ```
|
|
194
|
+
*/
|
|
195
|
+
docCoord2Screen(x: number, y: number, z: number): THREE.Vector3;
|
|
196
|
+
/**
|
|
197
|
+
* 更新显示,使用Three.js绘制了对象,调用该函数更新显示。
|
|
198
|
+
* @return void
|
|
199
|
+
* @example
|
|
200
|
+
* ``` typescript
|
|
201
|
+
* Mx.MxFun.updateDisplay()
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
updateDisplay(): void;
|
|
205
|
+
/**
|
|
206
|
+
* 设置窗口鼠标等事件的回调操作
|
|
207
|
+
* @param fun 参数1 type: 鼠标事件类型 "mouseup"鼠标释放 、"mousedown" 鼠标按下 参数2 event:事件对象 返回值: number 为0,表示事件往下传递,如果非0,表示事件已经被处理,不要往下传递了
|
|
208
|
+
* @return void
|
|
209
|
+
* @example
|
|
210
|
+
* ``` typescript
|
|
211
|
+
* Mx.MxFun.addWindowsEvent((type, event)=> {
|
|
212
|
+
* console.log(event)
|
|
213
|
+
* if(type = "mouseup") {
|
|
214
|
+
* console.log("鼠标释放")
|
|
215
|
+
* }else {
|
|
216
|
+
* console.log("鼠标按下")
|
|
217
|
+
* }
|
|
218
|
+
* // 事件往下传递
|
|
219
|
+
* // return 0
|
|
220
|
+
* // 事件已处理不再传递
|
|
221
|
+
* return -1
|
|
222
|
+
* })
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
addWindowsEvent(fun: (type: string, event: any) => number): void;
|
|
226
|
+
/**
|
|
227
|
+
* 当前是否有命令在运行
|
|
228
|
+
* @return boolean
|
|
229
|
+
* @example
|
|
230
|
+
* ``` typescript
|
|
231
|
+
* if(Mx.MxFun.isRunningCommand()) {
|
|
232
|
+
* // 当前已有命令在运行
|
|
233
|
+
* }
|
|
234
|
+
* ```
|
|
235
|
+
*/
|
|
236
|
+
isRunningCommand(): boolean;
|
|
237
|
+
/**
|
|
238
|
+
* 窗口缩放,把指定的范围内的图形放到视区中
|
|
239
|
+
* @param dLBx 矩形框范围的左下角X坐标
|
|
240
|
+
* @param dLBy 矩形框范围的左下角X坐标
|
|
241
|
+
* @param dRTx 矩形框范围的左下角X坐标
|
|
242
|
+
* @param dRTy 矩形框范围的左下角X坐标
|
|
243
|
+
* @param isWorld 传入的坐标是否是thruee.js坐标,默认传文档坐标
|
|
244
|
+
* @return void
|
|
245
|
+
* @example
|
|
246
|
+
* ``` typescript
|
|
247
|
+
* Mx.MxFun.zoomW(21, 22, 300, 310, false)
|
|
248
|
+
* ```
|
|
249
|
+
*/
|
|
250
|
+
zoomW(dLBx: number, dLBy: number, dRTx: number, dRTy: number, isWorld?: boolean): void;
|
|
251
|
+
/**
|
|
252
|
+
* 显示或隐藏图层
|
|
253
|
+
* @param idLayer 图层id,或层名
|
|
254
|
+
* @param isShow 是否显示
|
|
255
|
+
* @param isSketch 暂不使用
|
|
256
|
+
* @return void
|
|
257
|
+
* @example
|
|
258
|
+
* ``` typescript
|
|
259
|
+
* Mx.MxFun.showLayer(366, true, false)
|
|
260
|
+
* Mx.MxFun.showLayer("2363", fasle, false)
|
|
261
|
+
* ```
|
|
262
|
+
*/
|
|
263
|
+
showLayer(idLayer: number | string, isShow: boolean, isSketch?: boolean): void;
|
|
264
|
+
/**
|
|
265
|
+
* 输出字符串到命令行.
|
|
266
|
+
* @param sval 输出字符串
|
|
267
|
+
* @param ...val 剩余参数 命令cmd
|
|
268
|
+
* @return void
|
|
269
|
+
* @example
|
|
270
|
+
* ``` typescript
|
|
271
|
+
* Mx.MxFun.acutPrintf("{0}:", "draw")
|
|
272
|
+
* ```
|
|
273
|
+
*/
|
|
274
|
+
acutPrintf: ((sval: string, ...val: string[]) => void) | undefined;
|
|
275
|
+
/**
|
|
276
|
+
* 获取当前MxCAD对象,该函数在MxCAD模式下使用
|
|
277
|
+
* @return MxDrawObjectType MxCAD对象
|
|
278
|
+
* @example
|
|
279
|
+
* ``` typescript
|
|
280
|
+
* const mxcad = Mx.MxFun.getCurrentMxCAD()
|
|
281
|
+
* console.log(mxcad)
|
|
282
|
+
* ```
|
|
283
|
+
*/
|
|
284
|
+
getCurrentMxCAD(): MxDrawObjectType;
|
|
285
|
+
/**
|
|
286
|
+
* 得到地址栏参数
|
|
287
|
+
* @param name
|
|
288
|
+
* @return string 地址栏参数
|
|
289
|
+
* @example
|
|
290
|
+
* ``` typescript
|
|
291
|
+
* if(Mx.MxFun.getQueryString("mousetest") === "y")
|
|
292
|
+
* ```
|
|
293
|
+
*/
|
|
294
|
+
getQueryString(name: string): string;
|
|
295
|
+
/**
|
|
296
|
+
* 设置控件的配制参数. Mx.MxFun.createMxObject的 callback回调函数中调用.
|
|
297
|
+
* @param name
|
|
298
|
+
* @return string 地址栏参数
|
|
299
|
+
* @example
|
|
300
|
+
* ``` typescript
|
|
301
|
+
* Mx.MxFun.createMxObject({
|
|
302
|
+
* callback() {
|
|
303
|
+
* Mx.MxFun.setIniset({
|
|
304
|
+
* EnableIntelliSelect: true
|
|
305
|
+
* })
|
|
306
|
+
* }
|
|
307
|
+
* })
|
|
308
|
+
* ```
|
|
309
|
+
*/
|
|
310
|
+
setIniset(iniObj: {
|
|
311
|
+
EnableIntelliSelect: boolean;
|
|
312
|
+
}): void;
|
|
313
|
+
/**
|
|
314
|
+
* 更新图纸图层数据
|
|
315
|
+
* @param dataLayers
|
|
316
|
+
* @return boolean 更新成功或失败
|
|
317
|
+
* @example
|
|
318
|
+
* ``` typescript
|
|
319
|
+
* if(Mx.MxFun.upDisplayForLayerData({
|
|
320
|
+
*
|
|
321
|
+
* })) {
|
|
322
|
+
* console.log("更新成功")
|
|
323
|
+
* }
|
|
324
|
+
* ```
|
|
325
|
+
*/
|
|
326
|
+
upDisplayForLayerData(dataLayers: any): boolean;
|
|
327
|
+
}
|
|
328
|
+
export default MxFun;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { Vector3, Object3D } from 'three';
|
|
2
|
+
export default class McEdGetPointWorldDrawObjectClass implements McEdGetPointWorldDrawObject {
|
|
3
|
+
constructor();
|
|
4
|
+
/**
|
|
5
|
+
* 绘制圆
|
|
6
|
+
* @param cen 圆心位置
|
|
7
|
+
* @param dRadius 圆半径
|
|
8
|
+
* @returns void
|
|
9
|
+
* @example
|
|
10
|
+
* ``` typescript
|
|
11
|
+
* new Mx.McEdGetPointWorldDrawObjectClass().drawCircle(new HTREE.Vector3(0,100,5), 6)
|
|
12
|
+
* ```
|
|
13
|
+
*
|
|
14
|
+
*/
|
|
15
|
+
drawCircle(cen: Vector3, dRadius: number): void;
|
|
16
|
+
/**
|
|
17
|
+
* 绘制直线
|
|
18
|
+
* @param pt1 开始点
|
|
19
|
+
* @param pt2 结束点
|
|
20
|
+
* @returns void
|
|
21
|
+
* @example
|
|
22
|
+
* ``` typescript
|
|
23
|
+
* new Mx.McEdGetPointWorldDrawObjectClass().drawLine(new HTREE.Vector3(0,100,5), new HTREE.Vector3(0,600,5))
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
*/
|
|
27
|
+
drawLine(pt1: Vector3, pt2: Vector3): void;
|
|
28
|
+
/**
|
|
29
|
+
* 绘制一个Three.js对象.
|
|
30
|
+
* @param ent THREE.Object3D对象
|
|
31
|
+
* @returns void
|
|
32
|
+
* @example
|
|
33
|
+
* ``` typescript
|
|
34
|
+
* new Mx.McEdGetPointWorldDrawObjectClass().drawEntity(new THREE.Object3D()))
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
38
|
+
drawEntity(ent: Object3D | null): void;
|
|
39
|
+
/**
|
|
40
|
+
* 绘制一个文档对象
|
|
41
|
+
* @param sText 文本
|
|
42
|
+
* @param iSize 大小
|
|
43
|
+
* @param dAngle 角度
|
|
44
|
+
* @param pt 位置
|
|
45
|
+
* @returns void
|
|
46
|
+
* @example
|
|
47
|
+
* ``` typescript
|
|
48
|
+
* new Mx.McEdGetPointWorldDrawObjectClass().drawText("字符串" ,36 ,90 ,new HTREE.Vector3(0,100,5))
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
*/
|
|
52
|
+
drawText(sText: string, iSize: number, dAngle: number, pt: Vector3): void;
|
|
53
|
+
/**
|
|
54
|
+
* 设置动态绘制回调函数。
|
|
55
|
+
* @callback call 回调函数
|
|
56
|
+
* @param currentPoint 回调参数 当前位置
|
|
57
|
+
* @param pWorldDraw 回调参数 文档绘制对象 McEdGetPointWorldDrawObject
|
|
58
|
+
* @returns void
|
|
59
|
+
* @example
|
|
60
|
+
* ``` typescript
|
|
61
|
+
* new Mx.McEdGetPointWorldDrawObjectClass().setDraw((currentPoint, pWorldDraw)=> {
|
|
62
|
+
*
|
|
63
|
+
* })
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
*/
|
|
67
|
+
setDraw(call: (currentPoint: Vector3, pWorldDraw: McEdGetPointWorldDrawObject) => void): void;
|
|
68
|
+
_get(): McEdGetPointWorldDrawObject;
|
|
69
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { Vector3, Object3D } from 'three';
|
|
2
|
+
export default class MrxDbgUiPrPointClass implements MrxDbgUiPrPoint {
|
|
3
|
+
constructor();
|
|
4
|
+
/**
|
|
5
|
+
* 返回关键字列表
|
|
6
|
+
* @returns 关键词列表
|
|
7
|
+
*/
|
|
8
|
+
keyWords(): string;
|
|
9
|
+
/**
|
|
10
|
+
* 设置关键字列表
|
|
11
|
+
* @param keyWordList 关键词列表
|
|
12
|
+
* @returns void
|
|
13
|
+
*/
|
|
14
|
+
setKeyWords(keyWordList: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* 提示字符串
|
|
17
|
+
* @returns 提示消息
|
|
18
|
+
*/
|
|
19
|
+
message(): string;
|
|
20
|
+
/**
|
|
21
|
+
* 设置提示字符串
|
|
22
|
+
* @param message 提示消息
|
|
23
|
+
* @returns 提示消息
|
|
24
|
+
*/
|
|
25
|
+
setMessage(message: string): void;
|
|
26
|
+
/**
|
|
27
|
+
* 返回用户选择的关键字
|
|
28
|
+
* @returns 选择的关键字
|
|
29
|
+
*/
|
|
30
|
+
keyWordPicked(): string;
|
|
31
|
+
/**
|
|
32
|
+
* 测试某一个关键字是否被用户选择
|
|
33
|
+
* @param matchKeyWord 要检测的关键字
|
|
34
|
+
* @returns true为真
|
|
35
|
+
*/
|
|
36
|
+
isKeyWordPicked(matchKeyWord: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* 设置交互过程的动态绘制调用对象
|
|
39
|
+
* @param pDraw 动态绘制对象 McEdGetPointWorldDrawObject
|
|
40
|
+
* @returns true为真
|
|
41
|
+
*/
|
|
42
|
+
setUserDraw(pDraw: McEdGetPointWorldDrawObject): void;
|
|
43
|
+
/**
|
|
44
|
+
* 得以获取的点对象,Three.js坐标
|
|
45
|
+
* @returns 点对象 THREE.Vector3
|
|
46
|
+
*/
|
|
47
|
+
value(): Vector3;
|
|
48
|
+
/**
|
|
49
|
+
* 得以获取的点对象,DWG图纸坐标.
|
|
50
|
+
* @returns 点对象 DWG图纸坐标
|
|
51
|
+
*/
|
|
52
|
+
valueDocCoord(): Vector3;
|
|
53
|
+
/**
|
|
54
|
+
* 得到动态拖动的基点
|
|
55
|
+
* @returns 基点 THREE.Vector3
|
|
56
|
+
*/
|
|
57
|
+
basePt(): Vector3;
|
|
58
|
+
/**
|
|
59
|
+
* 设置动态拖动的基点
|
|
60
|
+
* @param basePt 基点 THREE.Vector3
|
|
61
|
+
* @returns 点对象 DWG图纸坐标
|
|
62
|
+
*/
|
|
63
|
+
setBasePt(basePt: Vector3): void;
|
|
64
|
+
/**
|
|
65
|
+
* 设置使用动态拖动的基点
|
|
66
|
+
* @param useIt 是否设置 默认为false
|
|
67
|
+
* @returns void
|
|
68
|
+
*/
|
|
69
|
+
setUseBasePt(useIt: boolean): void;
|
|
70
|
+
/**
|
|
71
|
+
* 开始动态拖动
|
|
72
|
+
* @callback retcall
|
|
73
|
+
* @param status 用户交互输入函数返回值
|
|
74
|
+
* kCancel = -2, // 取消
|
|
75
|
+
* kNone = -1, // 空输入,当输入关键字和实体时会返回此值
|
|
76
|
+
* kOk = 0, // 获取用户输入成功
|
|
77
|
+
* kKeyWord = 1, // 用户输入了关键字
|
|
78
|
+
* @returns void
|
|
79
|
+
*/
|
|
80
|
+
go(retcall: (status: MrxDbgUiPrBaseReturn) => void): void;
|
|
81
|
+
/**
|
|
82
|
+
* 动态拖动,连续取点,直到ESC退出。
|
|
83
|
+
* @callback retcall
|
|
84
|
+
* @param status 用户交互输入函数返回值
|
|
85
|
+
* @callback exitcall
|
|
86
|
+
* @param status 用户交互输入函数返回值
|
|
87
|
+
* kCancel = -2, // 取消
|
|
88
|
+
* kNone = -1, // 空输入,当输入关键字和实体时会返回此值
|
|
89
|
+
* kOk = 0, // 获取用户输入成功
|
|
90
|
+
* kKeyWord = 1, // 用户输入了关键字
|
|
91
|
+
* @returns void
|
|
92
|
+
*/
|
|
93
|
+
goWhile(retcall: (status: MrxDbgUiPrBaseReturn) => any, exitcall?: (status: MrxDbgUiPrBaseReturn) => any): void;
|
|
94
|
+
/**
|
|
95
|
+
* 把动态绘制的对象,保留到图上。
|
|
96
|
+
* @callback callAddEntity
|
|
97
|
+
* @param ent THREE.Object3D
|
|
98
|
+
* @returns 点对象 DWG图纸坐标
|
|
99
|
+
*/
|
|
100
|
+
drawReserve(callAddEntity?: (ent: Object3D) => void): void;
|
|
101
|
+
}
|