mxdraw 0.0.13 → 0.0.14

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.
@@ -115,7 +115,17 @@ export default class MxDrawObject {
115
115
  * Mx.MxFun.getCurrentDraw().addObject(new THREE.Object3D(), false)
116
116
  * ```
117
117
  */
118
- addObject(obj: THREE.Object3D | null, isAddToSelect?: boolean): void;
118
+ addObject(obj: THREE.Object3D, isAddToSelect?: boolean): void;
119
+ /**
120
+ * 添加THREE.Object3D对象到视区场景,对象坐标系是窗口视区坐标系。0,0点在左下角.
121
+ * @param obj THREE.Object3D
122
+ * @returns void
123
+ * @example
124
+ * ```typescript
125
+ * Mx.MxFun.getCurrentDraw().addViewObject(new THREE.Object3D())
126
+ * ```
127
+ */
128
+ addViewObject(obj: THREE.Object3D): void;
119
129
  /**
120
130
  * 删除addObject函数添加的THREE.Object3D对象
121
131
  * @param obj THREE.Object3D
@@ -198,7 +208,7 @@ export default class MxDrawObject {
198
208
  * Mx.MxFun.getCurrentDraw().addEvent("addResizeEvent", ()=> {})
199
209
  * Mx.MxFun.getCurrentDraw().addEvent("viewchange", ()=> {})
200
210
  * 视区重绘事件.
201
- * Mx.MxFun.getCurrentDraw().addEvent("render", ()=> {})
211
+ * Mx.MxFun.getCurrentDraw().addEvent("render", (renderer)=> {})
202
212
  * 视区大小被修改事件.,viewsize={viewWidth:viewWidth,viewHeight:viewHeight}
203
213
  * Mx.MxFun.getCurrentDraw().addEvent("viewsizechange", (viewsize)=> {})
204
214
  * ```
@@ -1,26 +1,62 @@
1
- /** @module MxThreeJS */
2
1
  import { Vector3, Line, Object3D, Points, Sprite, Mesh, MeshBasicMaterial, Color } from 'three';
3
2
  /**
4
3
  * MxThreeJS 模块
4
+ * ##### 使用说明:
5
+ *
6
+ * > 基于three.js实现创建直线对象、加载图片、SVG等功能,以下是使用的流程:
7
+ * - 模块中大部分方法返回的{@link http://www.yanhuangxueyuan.com/threejs/docs/index.html#api/zh/core/Object3D | THREE.Object3D}类型继承创建的对象都可以通过取点对象{@link MrxDbgUiPrPointClass.value} 得到鼠标对应位置
8
+ * - {@link MrxDbgUiPrPointClass.go}和{@link MrxDbgUiPrPointClass.goWhile}方法监听鼠标点击事件回调中通过
9
+ * - {@link MxDrawObject.addObject} 方法添加到场景{@link MxDrawObject.getScene}中
10
+ * - 最后调用{@link MxFun.updateDisplay} 更新视图显示完成
11
+ *
12
+ * > 提示: 在实际开发中MxThreeJS是配合着{@link MxDrawObject} 和 {@link MrxDbgUiPrPointClass} 完成绘制线段、文字、图片等功能,当然你也可以使用{@link http://www.yanhuangxueyuan.com/threejs/docs/index.html | three.js}来完成MxThreeJS模块的这些工作
13
+ *
14
+ * > 该模块导出库时已实例化为对象,只需要调用实例方法 例如:
5
15
  *
6
- * 导出库时已实例化为对象,只需要调用实例方法 例如:
7
16
  * ```typescript
8
- * Mx.MxThreeJS.createLine
17
+ * // html
18
+ * <button id="line">line</button>
19
+ *
20
+ * // js
21
+ * import Mx from "mxdraw"
22
+ * import Three from "three"
23
+ * Mx.useCoreCode().then(()=> {
24
+ * Mx.MxFun.setMxServer()
25
+ * Mx.MxFun.createMxObject({
26
+ * callback(mxDraw, dom) {
27
+ * document.getElementById("line").onclick = ()=> {
28
+ * const getPoint = new Mx.MrxDbgUiPrPointClass()
29
+ * let lastPt, isLine
30
+ * getPoint.goWhile(()=> {
31
+ * const pt1 = getPoint.value()
32
+ * if(isLine) {
33
+ * const line = Mx.MxThreeJS.createLine(pt1, lastPt, 0xffffff)
34
+ * const currentDraw = Mx.MxFun.getCurrentDraw()
35
+ * currentDraw.addObject(line)
36
+ * Mx.MxFun.updateDisplay()
37
+ * }
38
+ * lastPt = pt1.clone()
39
+ * isLine = !isLine
40
+ * })
41
+ * }
42
+ * }
43
+ * })
44
+ * })
9
45
  * ```
10
46
  */
11
47
  export default class MxThreeJS {
12
48
  /**
13
49
  * 创建Three.js直线对象。
14
- * @param vPt1 THREE.Vector3 点1
15
- * @param vPt1 THREE.Vector3 点2
16
- * @param iColor 颜色
17
- * @returns THREE.Line
50
+ * @param vPt1 {@link http://www.yanhuangxueyuan.com/threejs/docs/index.html#api/zh/math/Vector3 | THREE.Vector3} 点1
51
+ * @param vPt2 {@link http://www.yanhuangxueyuan.com/threejs/docs/index.html#api/zh/math/Vector3 | THREE.Vector3} 点2
52
+ * @param iColor 颜色Color
53
+ * @returns {@link http://www.yanhuangxueyuan.com/threejs/docs/index.html#api/zh/objects/Line |THREE.Line}
18
54
  * @example
19
55
  * ```typescript
20
56
  * Mx.MxThreeJS.createLine(new Three.Vector3(1,10,0), new Three.Vector3(1,300,0), 0)
21
57
  * ```
22
58
  */
23
- createLine(vPt1: Vector3, vPt2: Vector3, iColor: number): Line;
59
+ createLine(vPt1: Vector3, vPt2: Vector3, iColor: Color | number | string): Line;
24
60
  /**
25
61
  * 创建Three.js圆对象。
26
62
  * @param mCenterPt 圆中心点
@@ -32,7 +68,7 @@ export default class MxThreeJS {
32
68
  * Mx.MxThreeJS.createCircle(new Three.Vector3(1,10,0), 10, 0)
33
69
  * ```
34
70
  */
35
- createCircle(mCenterPt: Vector3, dRadius: number, iColor: number): Object3D;
71
+ createCircle(mCenterPt: Vector3, dRadius: number, iColor: Color | number | string): Object3D;
36
72
  /**
37
73
  * 创建Three.js点对象。
38
74
  * @param mPt 点位置
@@ -43,7 +79,7 @@ export default class MxThreeJS {
43
79
  * Mx.MxThreeJS.createPoint(new Three.Vector3(1,10,0), 0)
44
80
  * ```
45
81
  */
46
- createPoint(mPt: Vector3, iColor: number): Points;
82
+ createPoint(mPt: Vector3, iColor: Color | number | string): Points;
47
83
  /**
48
84
  * 创建Three.js 文字
49
85
  * @param message 文字信息
@@ -57,7 +93,7 @@ export default class MxThreeJS {
57
93
  * Mx.MxThreeJS.creatTextSprite("hello",new Three.Vector3(1,10,0), 90, 60, 0)
58
94
  * ```
59
95
  */
60
- creatTextSprite(message: string, pt: Vector3, iSize: number, fAngle: number, iColor: number): Sprite | null;
96
+ creatTextSprite(message: string, pt: Vector3, iSize: number, fAngle: number, iColor: Color | number | string): Sprite | null;
61
97
  /**
62
98
  * 根据三角形数组,创建Three.js Mesh
63
99
  * @param points 由三个点组成的数组
@@ -73,7 +109,7 @@ export default class MxThreeJS {
73
109
  * )
74
110
  * ```
75
111
  */
76
- createTriangle(points: Array<Vector3>, iColor: number, opacity?: number): Mesh | null;
112
+ createTriangle(points: Array<Vector3>, iColor: Color | number | string, opacity?: number): Mesh | null;
77
113
  /**
78
114
  * 创建连续直线
79
115
  * @param points 由多个点组成的数组
@@ -84,7 +120,7 @@ export default class MxThreeJS {
84
120
  * Mx.MxThreeJS.createLines([new THREE.Vector3(1,2,2),new THREE.Vector3(1,65,4),new THREE.Vector3(12,2,2)], 0)
85
121
  * ```
86
122
  */
87
- createLines(points: Array<Vector3>, iColor: number): Line;
123
+ createLines(points: Array<Vector3>, iColor: Color | number | string): Line;
88
124
  /**
89
125
  * 创建虚线
90
126
  * @param points 由多个点组成的数组
@@ -97,7 +133,7 @@ export default class MxThreeJS {
97
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)
98
134
  * ```
99
135
  */
100
- createDashedLines(points: Array<Vector3>, iColor: number, dashSize: number, gapSize: number): Line;
136
+ createDashedLines(points: Array<Vector3>, iColor: Color | number | string, dashSize: number, gapSize: number): Line;
101
137
  /**
102
138
  * 创建Image
103
139
  * @param pos 图片位置
@@ -113,7 +149,7 @@ export default class MxThreeJS {
113
149
  * })
114
150
  * ```
115
151
  */
116
- createImage: (pos: Vector3, w: number, h: number, imageUrlPath: string, callResult: (mesh: Mesh | null) => void) => void;
152
+ createImage(pos: Vector3, w: number, h: number, imageUrlPath: string, callResult?: (mesh: Mesh | null) => void): void;
117
153
  /**
118
154
  * 加载SVG
119
155
  * @param url SVG路径地址
@@ -130,5 +166,5 @@ export default class MxThreeJS {
130
166
  * })
131
167
  * ```
132
168
  */
133
- loadSVG: (url: string, x: number, y: number, scale: number, color: Color | undefined | null, callResult: (threeobj: Object3D, aryMeterial: Array<MeshBasicMaterial>) => void) => void;
169
+ loadSVG(url: string, x: number, y: number, scale: number, color?: Color | number | string, callResult?: (threeobj: Object3D, aryMeterial: Array<MeshBasicMaterial>) => void): void;
134
170
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mxdraw",
3
- "version": "0.0.13",
3
+ "version": "0.0.14",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/mxdraw.umd.js",
@@ -26,7 +26,7 @@
26
26
  "prebuild": "rimraf dist",
27
27
  "build": "tsc --module commonjs && rollup -c rollup.config.ts && typedoc --out docs",
28
28
  "oldDocs": "typedoc --out docs --target es6 --theme minimal --mode file src",
29
- "docs": "npm run doctoc && typedoc --out docs",
29
+ "docs": "npm run patch && npm run doctoc && typedoc --out docs",
30
30
  "start": "rollup -c rollup.config.ts -w",
31
31
  "test": "jest --coverage",
32
32
  "test:watch": "jest --coverage --watch",
@@ -68,7 +68,7 @@
68
68
  },
69
69
  "devDependencies": {
70
70
  "@babel/core": "^7.16.0",
71
- "@babel/preset-env": "^7.16.4",
71
+ "@babel/preset-react": "^7.16.5",
72
72
  "@commitlint/cli": "^7.1.2",
73
73
  "@commitlint/config-conventional": "^7.1.2",
74
74
  "@rollup/plugin-alias": "^3.1.8",