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
@@ -0,0 +1,17 @@
1
+ /**
2
+ * McGeVector3d
3
+ * @example ```typescript
4
+ * ```
5
+ */
6
+ export default interface McGeVector3d {
7
+ /**
8
+ *
9
+ * @returns
10
+ */
11
+ getVal(t: number): number;
12
+ /**
13
+ *
14
+ * @returns
15
+ */
16
+ setVal(v: number): void;
17
+ }
@@ -0,0 +1,3 @@
1
+ /** @module MrxDbgUiPrPointClass */
2
+ import McGeVector3d from './McGeVector3d';
3
+ export default McGeVector3d;
@@ -1,6 +1,6 @@
1
1
  /** @module McGiWorldDraw*/
2
- import McGiWorldDrawType from "../McGiWorldDrawType";
3
- import MxDrawObject from "../MxDrawObject";
2
+ import McGiWorldDrawType from '../McGiWorldDrawType';
3
+ import MxDrawObject from '../MxDrawObject';
4
4
  /**
5
5
  * McGiWorldDraw 用于构建一个动态绘制回调对象的规范接口
6
6
  * @abstract 是 {@link MxDbEntity.worldDraw }必须实现的抽象回调方法中的回调对象 通过回调对象完成一些动态绘制任务
@@ -92,13 +92,10 @@ export default interface McGiWorldDraw {
92
92
  * ```
93
93
  *
94
94
  */
95
- drawLine(pt1: THREE.Vector3, pt2: THREE.Vector3): void;
95
+ drawLine(pt1: THREE.Vector3 | number, pt2: THREE.Vector3 | number, x2?: number, y2?: number): void;
96
96
  /**
97
- * 绘制直线
98
- * @param x1 第一个点的X坐标
99
- * @param y1 第一个点的Y坐标
100
- * @param x2 第二个点的X坐标
101
- * @param y2 第二个点的Y坐标
97
+ * 绘制连续的直线
98
+ * @param points 点数组
102
99
  * @returns
103
100
  * @example
104
101
  * ``` typescript
@@ -106,7 +103,7 @@ export default interface McGiWorldDraw {
106
103
  * ```
107
104
  *
108
105
  */
109
- drawLine2(x1: number, y1: number, x2: number, y2: number): void;
106
+ drawLines(points: THREE.Vector3[]): void;
110
107
  /**
111
108
  * 绘制圆
112
109
  * @param cen 圆的中心点 THREE.Vector3
@@ -134,7 +131,7 @@ export default interface McGiWorldDraw {
134
131
  */
135
132
  drawText(sText: string, iSize: number, dAngle: number, pt: THREE.Vector3): void;
136
133
  /**
137
- * 设置DrawOrder
134
+ * 设置DrawOrder,默认值为100.
138
135
  * @returns
139
136
  * @example
140
137
  * ``` typescript
@@ -153,4 +150,74 @@ export default interface McGiWorldDraw {
153
150
  *
154
151
  */
155
152
  getRenderOrder(): number;
153
+ /**
154
+ * 设置宽度单位是屏幕像素,默认是屏幕像素,设置false,单位是Threejs坐标。
155
+ * @returns
156
+ * @example
157
+ * ``` typescript
158
+ *
159
+ * ```
160
+ *
161
+ */
162
+ setLineWidthIsPixels(isPixels: boolean): void;
163
+ /**
164
+ * 得到宽度单位
165
+ * @returns
166
+ * @example
167
+ * ``` typescript
168
+ *
169
+ * ```
170
+ *
171
+ */
172
+ getLineWidthIsPixels(): boolean;
173
+ /**
174
+ * 设置虚线显示数据。
175
+ * @returns
176
+ * @example
177
+ * ``` typescript
178
+ *
179
+ * ```
180
+ *
181
+ */
182
+ setDash(dDashArray: number, dDashRatio: number): void;
183
+ /**
184
+ * 得到虚线显示数据。
185
+ * @returns
186
+ * @example
187
+ * ``` typescript
188
+ *
189
+ * ```
190
+ *
191
+ */
192
+ getDash(): any;
193
+ /**
194
+ * 设置虚线显示
195
+ * @returns
196
+ * @example
197
+ * ``` typescript
198
+ *
199
+ * ```
200
+ *
201
+ */
202
+ setDashLineDisplay(isDashLine: boolean): void;
203
+ /**
204
+ *是否虚线显示
205
+ * @returns
206
+ * @example
207
+ * ``` typescript
208
+ *
209
+ * ```
210
+ *
211
+ */
212
+ isDashLineDisplay(): boolean;
213
+ /**
214
+ *绘制选择线。
215
+ * @returns
216
+ * @example
217
+ * ``` typescript
218
+ *
219
+ * ```
220
+ *
221
+ */
222
+ drawSelectLine(pt1: THREE.Vector3 | number, pt2: THREE.Vector3 | number, x2?: number, y2?: number): void;
156
223
  }
@@ -0,0 +1,21 @@
1
+ /** @module MxDbAlignedDimension*/
2
+ import * as THREE from 'three';
3
+ import McGiWorldDraw from '../McGiWorldDraw';
4
+ import MxDbEntity from '../MxDbEntity';
5
+ /**
6
+ * MxDbAlignedDimension 尺寸对象.
7
+ */
8
+ export default class MxDbAlignedDimension extends MxDbEntity {
9
+ private pt1;
10
+ private pt2;
11
+ getTypeName(): string;
12
+ private getDirection;
13
+ worldDraw(pWorldDraw: McGiWorldDraw): void;
14
+ setPoint1(pt1: THREE.Vector3): void;
15
+ setPoint2(pt2: THREE.Vector3): void;
16
+ getGripPoints(): Array<THREE.Vector3>;
17
+ moveGripPointsAt(index: number, offset: THREE.Vector3): boolean;
18
+ dwgIn(obj: any): boolean;
19
+ dwgOut(obj: any): object;
20
+ create(): MxDbEntity;
21
+ }
@@ -0,0 +1,3 @@
1
+ /** @module McEdGetPointWorldDrawObject*/
2
+ import MxDbAlignedDimension from './MxDbAlignedDimension';
3
+ export default MxDbAlignedDimension;
@@ -22,6 +22,7 @@ import McGiWorldDraw from '../McGiWorldDraw';
22
22
  */
23
23
  export default abstract class MxDbEntity {
24
24
  private iColor;
25
+ private iRenderOrder;
25
26
  /**
26
27
  * 自定义对象的绘制函数。在方法中定义如何绘制图形
27
28
  * @param pWorldDraw 绘制对象{@link McGiWorldDraw }
@@ -95,6 +96,25 @@ export default abstract class MxDbEntity {
95
96
  * ```
96
97
  */
97
98
  abstract dwgOut(obj: any): object;
99
+ /**
100
+ * 得到对象类型名
101
+ * @param
102
+ * @returns string
103
+ * @example
104
+ * ``` typescript
105
+ *
106
+ * ```
107
+ */
108
+ abstract getTypeName(): string;
109
+ /**
110
+ * 自定义实体的坐标变换.
111
+ * @param
112
+ * @returns void
113
+ * @example
114
+ * }
115
+ * ```
116
+ */
117
+ transformBy(mat: THREE.Matrix4): void;
98
118
  private getImp;
99
119
  /**
100
120
  * 更新显示
@@ -105,7 +125,17 @@ export default abstract class MxDbEntity {
105
125
  *
106
126
  * ```
107
127
  */
108
- upDisplay(): boolean;
128
+ setNeedUpdateDisplay(isImmediate?: boolean): boolean;
129
+ /**
130
+ * 得到对象的id.
131
+ * @param
132
+ * @returns number
133
+ * @example
134
+ * ``` typescript
135
+ *
136
+ * ```
137
+ */
138
+ objectId(): number;
109
139
  /**
110
140
  * 删除对象
111
141
  * @param
@@ -137,15 +167,15 @@ export default abstract class MxDbEntity {
137
167
  */
138
168
  getColor(): ColorType;
139
169
  /**
140
- * 得到对象类型名
170
+ * 复制对象。
141
171
  * @param
142
- * @returns string
172
+ * @returns MxDbEntity
143
173
  * @example
144
174
  * ``` typescript
145
175
  *
146
176
  * ```
147
177
  */
148
- getTypeName(): string;
178
+ clone(type?: number): MxDbEntity;
149
179
  /**
150
180
  * 自定义对象内部数据输入同步(实现dwgIn抽象方法 必须在实现中调用 this.onDwgIn())
151
181
  * @param obj dwgIn抽象方法的回调数据
@@ -156,4 +186,34 @@ export default abstract class MxDbEntity {
156
186
  * @param obj dwgOut抽象方法的回调数据
157
187
  */
158
188
  protected onDwgOut(obj: any): void;
189
+ /**
190
+ * 初始自定义对象的类型信息.
191
+ * @param
192
+ * @returns
193
+ * @example
194
+ * ``` typescript
195
+ *
196
+ * ```
197
+ */
198
+ rxInit(): void;
199
+ /**
200
+ * 设置显示顺序
201
+ * @param
202
+ * @returns boolean
203
+ * @example
204
+ * ``` typescript
205
+ *
206
+ * ```
207
+ */
208
+ setRenderOrder(iRenderOrder: number): void;
209
+ /**
210
+ * 得到显示顺序
211
+ * @param
212
+ * @returns boolean
213
+ * @example
214
+ * ``` typescript
215
+ *
216
+ * ```
217
+ */
218
+ getRenderOrder(): number;
159
219
  }
@@ -0,0 +1,28 @@
1
+ /** @module MxDbImage*/
2
+ import * as THREE from 'three';
3
+ import McGiWorldDraw from '../McGiWorldDraw';
4
+ import MxDbEntity from '../MxDbEntity';
5
+ /**
6
+ * MxDbImage 图片对象.
7
+ */
8
+ export default class MxDbImage extends MxDbEntity {
9
+ private pt1;
10
+ private pt2;
11
+ private imagePath;
12
+ private isLoadMaterialFromPath;
13
+ private material;
14
+ getTypeName(): string;
15
+ worldDraw(pWorldDraw: McGiWorldDraw): void;
16
+ setImagePath(sPath: string): void;
17
+ getImagePath(): string;
18
+ setMaterial(material: THREE.MeshLambertMaterial): void;
19
+ setPoint1(pt1: THREE.Vector3): void;
20
+ getPoint1(): THREE.Vector3;
21
+ setPoint2(pt2: THREE.Vector3): void;
22
+ getPoint2(): THREE.Vector3;
23
+ getGripPoints(): Array<THREE.Vector3>;
24
+ moveGripPointsAt(index: number, offset: THREE.Vector3): boolean;
25
+ dwgIn(obj: any): boolean;
26
+ dwgOut(obj: any): object;
27
+ create(): MxDbEntity;
28
+ }
@@ -0,0 +1,3 @@
1
+ /** @module McEdGetPointWorldDrawObject*/
2
+ import MxDbImage from './MxDbImage';
3
+ export default MxDbImage;
@@ -0,0 +1,22 @@
1
+ /** @module MxDbLine*/
2
+ import * as THREE from 'three';
3
+ import McGiWorldDraw from '../McGiWorldDraw';
4
+ import MxDbEntity from '../MxDbEntity';
5
+ /**
6
+ * MxDbLine 直线对象.
7
+ */
8
+ export default class MxDbLine extends MxDbEntity {
9
+ private pt1;
10
+ private pt2;
11
+ getTypeName(): string;
12
+ worldDraw(pWorldDraw: McGiWorldDraw): void;
13
+ setPoint1(pt1: THREE.Vector3): void;
14
+ getPoint1(): THREE.Vector3;
15
+ setPoint2(pt2: THREE.Vector3): void;
16
+ getPoint2(): THREE.Vector3;
17
+ getGripPoints(): Array<THREE.Vector3>;
18
+ moveGripPointsAt(index: number, offset: THREE.Vector3): boolean;
19
+ dwgIn(obj: any): boolean;
20
+ dwgOut(obj: any): object;
21
+ create(): MxDbEntity;
22
+ }
@@ -0,0 +1,3 @@
1
+ /** @module McEdGetPointWorldDrawObject*/
2
+ import MxDbLine from './MxDbLine';
3
+ export default MxDbLine;
@@ -0,0 +1,74 @@
1
+ import MxDbEntity from '../MxDbEntity';
2
+ import { Color, Matrix4, Vector2, Vector3 } from 'three';
3
+ import MxFilters from '../MxFilters';
4
+ import McGiWorldDraw from '../McGiWorldDraw';
5
+ /**
6
+ * MxRectEntity 矩形对象.
7
+ */
8
+ export default class MxDbRect extends MxDbEntity {
9
+ /**
10
+ * pt1: 构成矩形的第一个点
11
+ * */
12
+ pt1: Vector3;
13
+ /**
14
+ * pt1: 构成矩形的第二个点(对角点)
15
+ * */
16
+ pt2: Vector3;
17
+ /**
18
+ * width: 在绘制时自动计算矩形像素宽度 单位px
19
+ * */
20
+ width: number;
21
+ /**
22
+ * height: 在绘制时自动计算矩形像素高度 单位px
23
+ * */
24
+ height: number;
25
+ /**
26
+ * cornerRadius(优先级大于radius属性): 圆角的半径 如[3, 2, 1, 4]分别对应左上角圆角半径3 右上角2 右下角1 左下角4
27
+ * */
28
+ cornerRadius: number[];
29
+ /**
30
+ * radius(优先级低于cornerRadius属性): 所有圆角统一半径 (radius = 4) 通过MxFun.screenCoordLong2Doc方法转换为 (cornerRadius = [MxFun.screenCoordLong2Doc(4)...])
31
+ * */
32
+ radius: number | undefined;
33
+ /**
34
+ * fillColor(优先级低于fillImageSrc属性): 设置颜色后 矩形线框会填充为带颜色的矩形
35
+ * */
36
+ fillColor: Color | string | number | undefined;
37
+ /**
38
+ * transparent 开启透明度
39
+ * */
40
+ transparent: boolean;
41
+ /**
42
+ * opacity 设置透明度 0 ~ 1
43
+ * */
44
+ opacity: number;
45
+ /**
46
+ * visible 该矩形对象是否可见
47
+ * */
48
+ visible: boolean;
49
+ /**
50
+ * fillImageSrc(优先级低于fillColor属性) 填充背景图片的地址
51
+ * */
52
+ fillImageSrc: string | undefined;
53
+ /**
54
+ * fillImageParam 填充背景图片的参数设置(如果使用了滤镜则部分参数功能失效)
55
+ * */
56
+ fillImageParam: {
57
+ offset?: Vector2;
58
+ repeat?: Vector2;
59
+ rotation?: number;
60
+ center?: Vector2;
61
+ } | undefined;
62
+ /**
63
+ * 设置滤镜对象{@link MxFilters} 默认为undefined | null 则不使用该滤镜效果
64
+ * */
65
+ filter: MxFilters | undefined | null;
66
+ worldDraw(pWorldDraw: McGiWorldDraw): void;
67
+ getGripPoints(): Array<Vector3>;
68
+ moveGripPointsAt(index: number, offset: Vector3): boolean;
69
+ dwgIn(obj: any): boolean;
70
+ dwgOut(obj: any): object;
71
+ create(): MxDbEntity;
72
+ transformBy(mat: Matrix4): void;
73
+ getTypeName(): string;
74
+ }
@@ -0,0 +1,2 @@
1
+ import MxDbRect from './MxDbRect';
2
+ export default MxDbRect;
@@ -0,0 +1,42 @@
1
+ /** @module MxDbSVG*/
2
+ import * as THREE from 'three';
3
+ import McGiWorldDraw from '../McGiWorldDraw';
4
+ import MxDbEntity from '../MxDbEntity';
5
+ /**
6
+ * MxDbSVG SVG对象.
7
+ */
8
+ export default class MxDbSVG extends MxDbEntity {
9
+ private svgPos;
10
+ private svg;
11
+ private svgPath;
12
+ private svgSize;
13
+ private svgAlignmentRatio;
14
+ private isSvgDirtyLocation;
15
+ private isLoadFromPath;
16
+ private txtPos;
17
+ private txt;
18
+ private txtHeight;
19
+ worldDraw(pWorldDraw: McGiWorldDraw): void;
20
+ setSvgPath(path: string): void;
21
+ getSvgPath(): string;
22
+ setSvgPostion(pos: THREE.Vector3): void;
23
+ getSvgPostion(): THREE.Vector3;
24
+ setSvgSize(size: THREE.Vector2): void;
25
+ getSvgSize(): THREE.Vector2;
26
+ setSvgAlignmentRatio(alignmentRatio: THREE.Vector2): void;
27
+ getSvgAlignmentRatio(): THREE.Vector2;
28
+ setTextHeight(height: number): void;
29
+ getTextHeight(): number;
30
+ setText(txt: string): void;
31
+ getText(): string;
32
+ setTextPostion(pos: THREE.Vector3): void;
33
+ getTextPostion(): THREE.Vector3;
34
+ getGripPoints(): Array<THREE.Vector3>;
35
+ moveGripPointsAt(index: number, offset: THREE.Vector3): boolean;
36
+ private calcSvgPosition;
37
+ dwgIn(obj: any): boolean;
38
+ dwgOut(obj: any): object;
39
+ create(): MxDbEntity;
40
+ transformBy(mat: THREE.Matrix4): void;
41
+ getTypeName(): string;
42
+ }
@@ -0,0 +1,3 @@
1
+ /** @module McEdGetPointWorldDrawObject*/
2
+ import MxDbSVG from './MxDbSVG';
3
+ export default MxDbSVG;
@@ -231,6 +231,8 @@ export default class MxDrawObject {
231
231
  * Mx.MxFun.getCurrentDraw().addEvent("render", (renderer)=> {})
232
232
  * 视区大小被修改事件.,viewsize={viewWidth:viewWidth,viewHeight:viewHeight}
233
233
  * Mx.MxFun.getCurrentDraw().addEvent("viewsizechange", (viewsize)=> {})
234
+ * 实体选择状态发生改变的事件.
235
+ * Mx.MxFun.getCurrentDraw().addEvent("MxEntitySelectChange", (aryId:Array<number>)=> {})
234
236
  * ```
235
237
  */
236
238
  addEvent(eventNaem: string, fun: (...parmes: any) => any): void;
@@ -258,7 +260,7 @@ export default class MxDrawObject {
258
260
  */
259
261
  screenCoord2World(x: number, y: number, z?: number): THREE.Vector3;
260
262
  /**
261
- * ThreeJS坐标到屏幕坐标
263
+ * ThreeJS坐标到屏幕坐标,屏幕坐标的Y轴向下。坐标原点在左上角.
262
264
  * @returns THREE.Vector3
263
265
  * @example
264
266
  * ```typescript
@@ -276,7 +278,7 @@ export default class MxDrawObject {
276
278
  *
277
279
  * ```
278
280
  */
279
- screenCoord2Doc(x: number, y: number, z: number): THREE.Vector3;
281
+ screenCoord2Doc(x: number, y: number): THREE.Vector3;
280
282
  /**
281
283
  * ThreeJS坐标长度到DWG文档坐标长度
282
284
  * @returns number
@@ -346,7 +348,7 @@ export default class MxDrawObject {
346
348
  *
347
349
  * ```
348
350
  */
349
- docCoord2Screen(x: number, y: number, z: number): THREE.Vector3;
351
+ docCoord2Screen(x: number, y: number): THREE.Vector3;
350
352
  /**
351
353
  * 屏幕坐标长度到DWG文档坐标长度
352
354
  * @returns number
@@ -419,6 +421,26 @@ export default class MxDrawObject {
419
421
  * ```
420
422
  */
421
423
  getMxCurrentSelect(): Array<number>;
424
+ /**
425
+ * 把对象添加到当前选择中.
426
+ * @returns void
427
+ * @example
428
+ * ```typescript
429
+ *
430
+ *
431
+ * ```
432
+ */
433
+ addMxCurrentSelect(id: number): void;
434
+ /**
435
+ * 清除当前所有选择
436
+ * @returns void
437
+ * @example
438
+ * ```typescript
439
+ *
440
+ *
441
+ * ```
442
+ */
443
+ clearMxCurrentSelect(): boolean;
422
444
  /**
423
445
  *通过id获取绘制的对象.
424
446
  * @param id 返回对象的id
@@ -432,8 +454,7 @@ export default class MxDrawObject {
432
454
  getMxEntity(id: number): MxDbEntity;
433
455
  /**
434
456
  * 查找某点位置处的用户自绘对象.
435
- * @param ptMouse 查找的点位 THREE.Vector3
436
- * @param isWorldCoord 点是否是默认坐标 默认为 true
457
+ * @param ptMouse 查找的点位 THREE.Vector3,默认是文档坐标
437
458
  * @returns MxDbEntity[] 返回用户自绘对象数组
438
459
  * @example
439
460
  * ```typescript
@@ -441,7 +462,7 @@ export default class MxDrawObject {
441
462
  *
442
463
  * ```
443
464
  */
444
- findMxEntityAtPoint(ptMouse: THREE.Vector3, isWorldCoord?: boolean): Array<MxDbEntity>;
465
+ findMxEntityAtPoint(ptMouse: THREE.Vector3): Array<MxDbEntity>;
445
466
  /**
446
467
  *得到所有用户自绘对象.
447
468
  * @returns MxDbEntity[] 返回用户自绘对象数组
@@ -495,4 +516,59 @@ export default class MxDrawObject {
495
516
  * ```
496
517
  */
497
518
  enablePan(isEnable: boolean): void;
519
+ /**
520
+ * 删除MxEntity
521
+ * @param id 实体id.
522
+ * @returns
523
+ * @example
524
+ * ```typescript
525
+ *
526
+ *
527
+ * ```
528
+ */
529
+ eraseMxEntity(id: number): boolean;
530
+ /**
531
+ * 移除安视图坐标绘制的对象.
532
+ * @param obj 对象.
533
+ * @returns
534
+ * @example
535
+ * ```typescript
536
+ *
537
+ *
538
+ * ```
539
+ */
540
+ removeViewObject(obj: THREE.Object3D): void;
541
+ /**
542
+ * 保存所有MxEntity的数据到json字符串.
543
+ * @param
544
+ * @returns json字符串
545
+ * @example
546
+ * ```typescript
547
+ *
548
+ *
549
+ * ```
550
+ */
551
+ saveMxEntityToJson(): string;
552
+ /**
553
+ * 从json字符串恢复MxEntity
554
+ * @param dataString json字符串.
555
+ * @returns
556
+ * @example
557
+ * ```typescript
558
+ *
559
+ *
560
+ * ```
561
+ */
562
+ loadMxEntityFromJson(dataString: string): boolean;
563
+ /**
564
+ * 删除所有对MxEntity
565
+ * @param
566
+ * @returns
567
+ * @example
568
+ * ```typescript
569
+ *
570
+ *
571
+ * ```
572
+ */
573
+ eraseAllMxEntity(): void;
498
574
  }
@@ -0,0 +1,94 @@
1
+ /** 简单颜色滤镜矩阵 */
2
+ import { Matrix4, Matrix3, Color } from 'three';
3
+ interface ChannelParamTypes {
4
+ r?: number;
5
+ g?: number;
6
+ b?: number;
7
+ }
8
+ export default class MxFilters {
9
+ private uniformObj;
10
+ private filtersStr;
11
+ private filtersTypes;
12
+ private VSHADER_SOURCE;
13
+ private FSHADER_SOURCE;
14
+ private _matrix;
15
+ /**
16
+ * 过滤或增强某个颜色通道
17
+ * @param {ChannelParamTypes}
18
+ * */
19
+ channel({ r, g, b }: ChannelParamTypes): this;
20
+ /**
21
+ * 改变亮度
22
+ * @param {number} p
23
+ * p = 0 全暗,p > 0 且 p < 1 调暗,p = 1 原色, p > 1 调亮
24
+ * */
25
+ brightness(p: number): this;
26
+ /**
27
+ * 饱和度
28
+ * @param {number} p
29
+ * p = 0 完全灰度化,p = 1 原色,p > 1 增强饱和度
30
+ * */
31
+ saturate(p: number): this;
32
+ /**
33
+ * 对比度
34
+ * @param {number} p
35
+ * p = 1 原色, p < 1 减弱对比度,p > 1 增强对比度
36
+ * */
37
+ contrast(p: number): this;
38
+ /**
39
+ * 透明度
40
+ * @param {number} p
41
+ * p = 0 全透明,p = 1 原色
42
+ * */
43
+ opacity(p: number): this;
44
+ /**
45
+ * 反色
46
+ * @param {number} p
47
+ * p = 0 原色, p = 1 完全反色
48
+ * */
49
+ invert(p: number): this;
50
+ /**
51
+ * 灰度
52
+ * @param {number} p 0~1
53
+ * */
54
+ grayscale(p?: number): this;
55
+ /**
56
+ * 深褐色
57
+ * @param {number} p 0~1
58
+ * */
59
+ sepia(p?: number): this;
60
+ /**
61
+ * 色相旋转,将色调沿极坐标转过deg角度
62
+ * @param {number} deg 0~360
63
+ * */
64
+ hueRotate(deg: number): this;
65
+ /**
66
+ * 色相旋转,将色调沿极坐标转过deg角度
67
+ * @param {number} deg 0~360
68
+ * */
69
+ /**
70
+ * 卷积
71
+ * @param {Matrix3} cKernel 3*3的矩阵
72
+ * @param {number} stStep 1 / 9
73
+ * @param {number} scaleFactor 521
74
+ * */
75
+ convolution(cKernel: Matrix3, stStep?: number, scaleFactor?: number): this;
76
+ /**
77
+ * 重置所有滤镜效果
78
+ * */
79
+ reset(): this;
80
+ _getFilterShaderData(texture: THREE.Texture): {
81
+ uniforms: {
82
+ e_Texture: {
83
+ value: import("three").Texture;
84
+ };
85
+ colorMatrix: {
86
+ value: Matrix4;
87
+ };
88
+ };
89
+ vertexShader: string;
90
+ fragmentShader: string;
91
+ };
92
+ _getFilterColor(color?: string | number | Color, opacity?: number): Color;
93
+ }
94
+ export {};
@@ -0,0 +1,2 @@
1
+ import MxFilters from './MxFilters';
2
+ export default MxFilters;