dxfview 0.0.4-beta.2 → 0.0.4-beta.21
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/dist/dxfview.esm.min.js +3 -3
- package/dist/types/core/canvas/SelectionBoxDrawable.d.ts +27 -0
- package/dist/types/core/geometry-offset/Offset.d.ts +2 -2
- package/dist/types/core/helpers/OSnapHelper.d.ts +30 -1
- package/dist/types/core/utils/DecimalPrecisionUtils.d.ts +4 -0
- package/dist/types/core/utils/MergeUtils.d.ts +1 -1
- package/dist/types/core/utils/utf8OrGBK.d.ts +4 -0
- package/dist/types/core/viewers/DxfViewer.d.ts +175 -174
- package/dist/types/plugins/annotation/AnnotationPlugin.d.ts +88 -0
- package/dist/types/plugins/annotation/BaseAnnotation.d.ts +37 -2
- package/dist/types/plugins/annotation/BaseAnnotationDrawable.d.ts +27 -2
- package/dist/types/plugins/annotation/FreeDrawAnnotation.d.ts +48 -14
- package/dist/types/plugins/annotation/RectAnnotation.d.ts +37 -10
- package/dist/types/plugins/annotation/RectDrawable.d.ts +8 -1
- package/dist/types/plugins/annotation/freeDrawDrawable.d.ts +1 -0
- package/dist/types/plugins/annotation/type.d.ts +1 -0
- package/dist/types/plugins/divide/DividePlugin.d.ts +10 -2
- package/dist/types/plugins/divide/FrameAnnotation.d.ts +1 -0
- package/package.json +92 -90
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @fileoverview DxfViewer
|
|
2
|
+
* @fileoverview DxfViewer 类- DXF/DWG 文件的3D 查看器核心组件
|
|
3
3
|
*
|
|
4
|
-
* 这个文件实现了
|
|
4
|
+
* 这个文件实现了DxfViewer 类,该类继承自BaseViewer,专门用于渲染和交互 DXF/DWG 格式的工程图纸。
|
|
5
5
|
* 主要功能包括:
|
|
6
6
|
* - 3D 场景渲染和相机控制
|
|
7
7
|
* - 图层管理和可见性控制
|
|
@@ -37,7 +37,7 @@ import type { MeasurementPlugin } from "../../plugins/measure";
|
|
|
37
37
|
* DxfViewer 不维护模型和标记数据之间的关系,业务逻辑应该知道
|
|
38
38
|
* 一组标记数据属于哪个模型。
|
|
39
39
|
*
|
|
40
|
-
* 这个类型继承自
|
|
40
|
+
* 这个类型继承自DrawableData,扩展了基础的可绘制数据结构,
|
|
41
41
|
* 用于支持 DXF 查看器的标记功能,如注释、测量等。
|
|
42
42
|
*/
|
|
43
43
|
export declare type MarkupData = DrawableData;
|
|
@@ -45,10 +45,10 @@ export declare type MarkupData = DrawableData;
|
|
|
45
45
|
* @interface EntityData
|
|
46
46
|
* @description 实体数据接口
|
|
47
47
|
*
|
|
48
|
-
* 这个接口定义了
|
|
48
|
+
* 这个接口定义了DXF 实体的数据结构,包含实体所属的模型和图层信息。
|
|
49
49
|
* 用于在查看器中唯一标识和定位一个实体对象。
|
|
50
50
|
*
|
|
51
|
-
* @property {string} modelId - 模型唯一标识符,用于区分不同的
|
|
51
|
+
* @property {string} modelId - 模型唯一标识符,用于区分不同的DXF 文件
|
|
52
52
|
* @property {string} layerName - 图层名称,表示实体所在的图层
|
|
53
53
|
*/
|
|
54
54
|
export interface EntityData {
|
|
@@ -60,9 +60,9 @@ export interface EntityData {
|
|
|
60
60
|
* @description DXF/DWG 图层组接口
|
|
61
61
|
*
|
|
62
62
|
* 这个接口定义了一个图纸的所有图层集合,包含图层名称到图层对象的映射。
|
|
63
|
-
* 用于管理和组织
|
|
63
|
+
* 用于管理和组织DXF 文件中的图层信息,支持图层的显示/隐藏、颜色设置等操作。
|
|
64
64
|
*
|
|
65
|
-
* @property {string} modelId - 模型唯一标识符,对应具体的
|
|
65
|
+
* @property {string} modelId - 模型唯一标识符,对应具体的DXF 文件
|
|
66
66
|
* @property {Record<string, DxfLayer>} layers - 图层映射表,键为图层名称,值为图层对象
|
|
67
67
|
*/
|
|
68
68
|
export interface DxfLayers {
|
|
@@ -73,7 +73,7 @@ export interface DxfLayers {
|
|
|
73
73
|
* @interface PdfLayers
|
|
74
74
|
* @description PDF 图层组接口
|
|
75
75
|
*
|
|
76
|
-
* 这个接口定义了一个
|
|
76
|
+
* 这个接口定义了一个PDF 文件的所有图层集合,虽然主要用于 DXF 查看器,
|
|
77
77
|
* 但也支持 PDF 文件的图层管理功能。
|
|
78
78
|
*
|
|
79
79
|
* @property {string} modelId - 模型唯一标识符
|
|
@@ -87,7 +87,7 @@ export interface PdfLayers {
|
|
|
87
87
|
* @interface PdfLayer
|
|
88
88
|
* @description PDF 图层接口
|
|
89
89
|
*
|
|
90
|
-
* 这个接口定义了单个
|
|
90
|
+
* 这个接口定义了单个PDF 图层的属性和状态信息。
|
|
91
91
|
* 用于控制 PDF 图层的显示和交互行为。
|
|
92
92
|
*
|
|
93
93
|
* @property {string} name - 图层名称,用于标识和显示
|
|
@@ -105,13 +105,13 @@ export interface PdfLayer {
|
|
|
105
105
|
* @interface PdfData
|
|
106
106
|
* @description PDF 数据接口
|
|
107
107
|
*
|
|
108
|
-
* 这个接口定义了
|
|
108
|
+
* 这个接口定义了PDF 文件的数据结构,虽然主要用于 DXF 查看器,
|
|
109
109
|
* 但也支持 PDF 文件的渲染和交互功能。
|
|
110
110
|
*
|
|
111
111
|
* @property {THREE.Object3D} threejsObject - 整个 DXF/PDF 文件的根 Three.js 对象
|
|
112
112
|
* @property {Record<string, PdfLayer>} layers - 图层映射表,包含所有图层信息
|
|
113
113
|
* @property {Record<string, THREE.Object3D[]>} layersAndThreejsObjects 可选 - 按图层名称组织的 Three.js 对象数组
|
|
114
|
-
* @property {number} loadedEntityCount -
|
|
114
|
+
* @property {number} loadedEntityCount - 已创建加载的实体数量,主要用于日志记录,不是精确值
|
|
115
115
|
*/
|
|
116
116
|
export interface PdfData {
|
|
117
117
|
threejsObject: THREE.Object3D;
|
|
@@ -123,7 +123,7 @@ export interface PdfData {
|
|
|
123
123
|
* Threejs 对象按以下树状视图组织:
|
|
124
124
|
*
|
|
125
125
|
* - modelLevelObject1 (THREE.Group, name = <modelId>)
|
|
126
|
-
* - layoutLevelObject1 (THREE.Group, name = <布局名称>, 用于控制布局可见性
|
|
126
|
+
* - layoutLevelObject1 (THREE.Group, name = <布局名称>, 用于控制布局可见性
|
|
127
127
|
* - entityLevelObject1 (THREE.Point/Line/Mesh/Group)
|
|
128
128
|
*
|
|
129
129
|
* - 图层 threejs 对象
|
|
@@ -133,67 +133,67 @@ export interface PdfData {
|
|
|
133
133
|
*/
|
|
134
134
|
/**
|
|
135
135
|
* @class DxfViewer
|
|
136
|
-
* @description DXF/DWG 文件查看器类 - 专业的工程图纸
|
|
136
|
+
* @description DXF/DWG 文件查看器类 - 专业的工程图纸3D 查看器
|
|
137
137
|
*
|
|
138
|
-
* "dwg"
|
|
139
|
-
* "dxf"是数据交换格式,可以从dwg
|
|
140
|
-
* 我们无法直接读取dwg文件,需要先通过ODA转换为dxf
|
|
138
|
+
* "dwg"明drawing"的缩写,是AutoCAD保存的文件格式、
|
|
139
|
+
* "dxf"是数据交换格式,可以从dwg文件转换而来、
|
|
140
|
+
* 我们无法直接读取dwg文件,需要先通过ODA转换为dxf格式、
|
|
141
141
|
*
|
|
142
|
-
* 支持的DXF版本:AutoCAD 2018。同时支持二进制和ASCII
|
|
142
|
+
* 支持的DXF版本:AutoCAD 2018。同时支持二进制和ASCII格式、
|
|
143
143
|
*
|
|
144
144
|
* JSON编码:UTF-8编码,无BOM
|
|
145
145
|
*
|
|
146
|
-
* 坐标系统:右手坐标系,Y
|
|
146
|
+
* 坐标系统:右手坐标系,Y轴向个
|
|
147
147
|
*
|
|
148
|
-
*
|
|
149
|
-
* - 距离单位遵循主DXF
|
|
150
|
-
* - 面积单位遵循主DXF
|
|
151
|
-
* -
|
|
152
|
-
* -
|
|
148
|
+
* 关于单位,
|
|
149
|
+
* - 距离单位遵循主DXF文件的单体
|
|
150
|
+
* - 面积单位遵循主DXF文件的单体
|
|
151
|
+
* - 角度单位个度,逆时针方合
|
|
152
|
+
* - 时间单位个移
|
|
153
153
|
*
|
|
154
|
-
* 颜色:使用rgb/rgba
|
|
154
|
+
* 颜色:使用rgb/rgba,值范图-1
|
|
155
155
|
*
|
|
156
|
-
* 关于DxfViewer
|
|
156
|
+
* 关于DxfViewer中的测量,
|
|
157
157
|
* - 测量由DxfViewer生成
|
|
158
|
-
* - 测量数据应该由用户存储,以便稍后恢复到DxfViewer
|
|
158
|
+
* - 测量数据应该由用户存储,以便稍后恢复到DxfViewer个
|
|
159
159
|
* - DxfViewer管理测量数据,可以创建、删除、隐藏等
|
|
160
160
|
* - DxfViewer不维护测量与布局之间的关系
|
|
161
161
|
*
|
|
162
|
-
* 关于DxfViewer
|
|
163
|
-
*
|
|
162
|
+
* 关于DxfViewer中的标记,
|
|
163
|
+
* 标记与测量非常相传
|
|
164
164
|
*
|
|
165
|
-
* 关于DxfViewer
|
|
165
|
+
* 关于DxfViewer中的热点,
|
|
166
166
|
* - 热点由用户创建和存储
|
|
167
167
|
* - 热点可以添加到DxfViewer中,也可以从中移除
|
|
168
168
|
* - 调用者应该设置在当前DxfViewer会话中唯一的热点ID
|
|
169
|
-
* - DxfViewer
|
|
169
|
+
* - DxfViewer不会隐藏热点,用户可以自己操体
|
|
170
170
|
* - DxfViewer不维护热点与布局之间的关系
|
|
171
171
|
*
|
|
172
|
-
*
|
|
172
|
+
* 关于布局,
|
|
173
173
|
* - 每个布局都有自己的主视图
|
|
174
174
|
* - 切换到另一个布局时,会清除所有测量、标记和热点
|
|
175
175
|
* - 切换到另一个布局时,会停用任何正在进行的操作,如测量、标记等
|
|
176
176
|
*
|
|
177
|
-
*
|
|
177
|
+
* 关于叠加,
|
|
178
178
|
* - 只要浏览器有足够的内存、CPU/GPU等,就支持添加任意数量的模型
|
|
179
|
-
* -
|
|
180
|
-
* -
|
|
181
|
-
* -
|
|
179
|
+
* - 第一个模型称个主模型,其他的称为"叠加模型"
|
|
180
|
+
* - 忽略叠加模型的图纸空闭
|
|
181
|
+
* - 如果叠加模型的单位与主模型不同,应该转换为主模型的单体
|
|
182
182
|
* - 在getLayers()中会添加modelId作为前缀
|
|
183
183
|
*
|
|
184
|
-
*
|
|
185
|
-
* -
|
|
184
|
+
* 关于比较,
|
|
185
|
+
* - 只比输模型"空间
|
|
186
186
|
* - 比较具有相同句柄和类型的实体
|
|
187
187
|
* - 比较实体的几何形状、位置、缩放等
|
|
188
188
|
* - 忽略图层的可见性、冻结设置
|
|
189
189
|
* - 忽略实体的属性,如线型、线宽、填充图案、字体、颜色等
|
|
190
|
-
* - 忽略块引用的空间过滤器(xclip
|
|
190
|
+
* - 忽略块引用的空间过滤器(xclip,
|
|
191
191
|
* - 忽略与图层相关的操作,如将实体移动到另一个图层、更改图层颜色等
|
|
192
|
-
* - 默认情况下,"添加"
|
|
192
|
+
* - 默认情况下,"添加"的实体以绿色渲染,删除"的实体以红色渲染,修改"的实体由两部分组成,一个删除"和一个添加"
|
|
193
193
|
*
|
|
194
|
-
*
|
|
194
|
+
* 关于撤销/重做,
|
|
195
195
|
* - 支持测量和标记操作的撤销/重做。例如:创建/删除/移动标记
|
|
196
|
-
* -
|
|
196
|
+
* - 设置/移除一批测量或标记将被视为一个操体
|
|
197
197
|
* - 切换到另一个布局会清除所有撤销/重做历史记录
|
|
198
198
|
*
|
|
199
199
|
* 关于对象捕捉(OSnap):
|
|
@@ -229,17 +229,18 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
229
229
|
private readonly CAMERA_Z_POSITION;
|
|
230
230
|
private readonly CAMERA_MIN_ZOOM;
|
|
231
231
|
private timer;
|
|
232
|
-
/** @protected CSS2D
|
|
232
|
+
/** @protected CSS2D渲染器- 用于在场景中渲染HTML标签 */
|
|
233
233
|
protected css2dRenderer?: CSS2DRenderer;
|
|
234
|
-
/** @protected
|
|
234
|
+
/** @protected 字体管理器- 处理文本渲染 */
|
|
235
235
|
protected fontManager?: FontManager;
|
|
236
236
|
/** @protected 是否启用选择功能 */
|
|
237
237
|
protected enableSelection?: boolean;
|
|
238
|
-
/** @protected
|
|
238
|
+
/** @protected 当前选中的对象*/
|
|
239
239
|
protected selectedObject?: THREE.Object3D | Drawable;
|
|
240
|
+
private boxSelectHelper?;
|
|
240
241
|
/**
|
|
241
242
|
* 已加载的模型列表
|
|
242
|
-
*
|
|
243
|
+
* 记录的错是modelId或src
|
|
243
244
|
* @internal
|
|
244
245
|
*/
|
|
245
246
|
loadedModels: Model2d[];
|
|
@@ -248,19 +249,19 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
248
249
|
* @internal
|
|
249
250
|
*/
|
|
250
251
|
masterModelId: string;
|
|
251
|
-
/** @private DXF
|
|
252
|
+
/** @private DXF布局栏组件*/
|
|
252
253
|
private dxfLayoutBar?;
|
|
253
|
-
/** @private Three.js
|
|
254
|
+
/** @private Three.js加载管理器*/
|
|
254
255
|
private loadingManager?;
|
|
255
|
-
/** @private 射线投射器 -
|
|
256
|
+
/** @private 射线投射器 - 用于对象拾取和交互*/
|
|
256
257
|
private raycaster?;
|
|
257
|
-
/** @private
|
|
258
|
+
/** @private 相机更新定时器*/
|
|
258
259
|
private cameraUpdateInterval?;
|
|
259
|
-
/** @protected 是否选中状态 - TODO: 与selectedObject
|
|
260
|
+
/** @protected 是否选中状态 - TODO: 与selectedObject重复,*/
|
|
260
261
|
protected selected: boolean;
|
|
261
|
-
/** @private 标记管理器 -
|
|
262
|
+
/** @private 标记管理器 - 管理活动布局的标记*/
|
|
262
263
|
private markupManager?;
|
|
263
|
-
/** @private
|
|
264
|
+
/** @private 缩放至矩形区域辅助工具*/
|
|
264
265
|
private zoomToRectHelper?;
|
|
265
266
|
/**
|
|
266
267
|
* @private 请求动画帧辅助工具 - 用于提升渲染性能
|
|
@@ -268,7 +269,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
268
269
|
* 通过将raf设置为undefined可以禁用此功能
|
|
269
270
|
*/
|
|
270
271
|
private raf?;
|
|
271
|
-
/** @private 时钟对象 -
|
|
272
|
+
/** @private 时钟对象 - 用于时间相关的计算*/
|
|
272
273
|
private clock;
|
|
273
274
|
/** @protected 渲染启用状态 - 与RafHelper配合使用 */
|
|
274
275
|
protected renderEnabled: boolean;
|
|
@@ -294,7 +295,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
294
295
|
private fpsUtils;
|
|
295
296
|
/** @private 正在拖拽的标注可绘制对象 */
|
|
296
297
|
private draggingAnnotationDrawable?;
|
|
297
|
-
/** @private
|
|
298
|
+
/** @private 正在拖拽的顶点索引*/
|
|
298
299
|
private draggingVertexIndex?;
|
|
299
300
|
/**
|
|
300
301
|
* DxfViewer构造函数
|
|
@@ -331,7 +332,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
331
332
|
protected init(): void;
|
|
332
333
|
private initInputManager;
|
|
333
334
|
/**
|
|
334
|
-
*
|
|
335
|
+
* 交互模式,
|
|
335
336
|
* select 模式:左键点击选择,鼠标中键拖拽平移;鼠标样式为默认;
|
|
336
337
|
* move 模式:左键拖拽平移(与中键一致),鼠标样式为 pan/grab
|
|
337
338
|
*/
|
|
@@ -344,12 +345,12 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
344
345
|
* - "move"模式:用于快速平移视图,左键拖拽即可平移
|
|
345
346
|
*
|
|
346
347
|
* 两种模式的鼠标行为:
|
|
347
|
-
* select
|
|
348
|
+
* select模式,
|
|
348
349
|
* - 左键:选择对象
|
|
349
350
|
* - 中键:拖拽平移视图
|
|
350
351
|
* - 鼠标样式:默认样式
|
|
351
352
|
*
|
|
352
|
-
* move
|
|
353
|
+
* move模式,
|
|
353
354
|
* - 左键:拖拽平移视图(与中键行为一致)
|
|
354
355
|
* - 鼠标样式:抓取样式(pan/grab)
|
|
355
356
|
*
|
|
@@ -367,12 +368,12 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
367
368
|
setInteractionMode(mode: "select" | "move"): void;
|
|
368
369
|
/**
|
|
369
370
|
* 初始化Three.js核心组件
|
|
370
|
-
*
|
|
371
|
+
* 包括场景、渲染器和相术
|
|
371
372
|
*/
|
|
372
373
|
private initThree;
|
|
373
374
|
/**
|
|
374
375
|
* 初始化DOM相关组件
|
|
375
|
-
* 包括加载指示器、CSS2D
|
|
376
|
+
* 包括加载指示器、CSS2D渲染器、进度条和布局标
|
|
376
377
|
*/
|
|
377
378
|
private initDom;
|
|
378
379
|
/**
|
|
@@ -382,22 +383,22 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
382
383
|
private initScene;
|
|
383
384
|
/**
|
|
384
385
|
* 初始化WebGL渲染器
|
|
385
|
-
* 配置渲染参数并设置到DOM
|
|
386
|
+
* 配置渲染参数并设置到DOM个
|
|
386
387
|
*/
|
|
387
388
|
private initRenderer;
|
|
388
389
|
/**
|
|
389
390
|
* 初始化CSS2D渲染器
|
|
390
|
-
* 用于渲染HTML
|
|
391
|
+
* 用于渲染HTML标签和标法
|
|
391
392
|
*/
|
|
392
393
|
protected initCSS2DRenderer(): void;
|
|
393
394
|
/**
|
|
394
|
-
*
|
|
395
|
+
* 初始化正交相术
|
|
395
396
|
* 设置相机位置、缩放和投影矩阵
|
|
396
397
|
*/
|
|
397
398
|
private initCamera;
|
|
398
399
|
/**
|
|
399
400
|
* 初始化相机控制器
|
|
400
|
-
*
|
|
401
|
+
* 设置鼠标和触摸交互行个
|
|
401
402
|
* @internal
|
|
402
403
|
*/
|
|
403
404
|
protected initControls(): void;
|
|
@@ -411,19 +412,19 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
411
412
|
*/
|
|
412
413
|
protected onControlsChange(viewer: DxfViewer): () => void;
|
|
413
414
|
/**
|
|
414
|
-
*
|
|
415
|
+
* 初始化鼠标指针事件
|
|
415
416
|
* 处理各种交互事件如点击、拖拽、键盘快捷键等
|
|
416
417
|
*/
|
|
417
418
|
private initEvents;
|
|
418
419
|
protected initOthers(): void;
|
|
419
420
|
private initLoadingProgressBar;
|
|
420
421
|
/**
|
|
421
|
-
*
|
|
422
|
+
* 显示布局标
|
|
422
423
|
* @internal
|
|
423
424
|
*/
|
|
424
425
|
showLayoutBar(): void;
|
|
425
426
|
/**
|
|
426
|
-
*
|
|
427
|
+
* 隐藏布局标
|
|
427
428
|
* @internal
|
|
428
429
|
*/
|
|
429
430
|
hideLayoutBar(): void;
|
|
@@ -432,19 +433,19 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
432
433
|
* 启用渲染以提升性能
|
|
433
434
|
*
|
|
434
435
|
* 为获得更好的性能,应该只在必要时进行渲染。通常在以下情况应该启用渲染:
|
|
435
|
-
* - 对象被添加到场景、从场景移除,或对象的position、scale、rotation、opacity、material
|
|
436
|
+
* - 对象被添加到场景、从场景移除,或对象的position、scale、rotation、opacity、material等属性发生变区
|
|
436
437
|
* - 对象被选择或取消选择
|
|
437
438
|
* - 相机发生变化
|
|
438
439
|
* - 渲染区域大小发生变化
|
|
439
440
|
*
|
|
440
|
-
*
|
|
441
|
+
* 这个方法会设置一个超时,在指定的时间后自动禁用渲染,从而避免不必要的渲染开销、
|
|
441
442
|
*
|
|
442
443
|
* @param time - 渲染启用持续时间(毫秒),默认为1000ms
|
|
443
444
|
* @internal 内部方法,主要由框架内部调用
|
|
444
445
|
*
|
|
445
446
|
* @example
|
|
446
447
|
* ```typescript
|
|
447
|
-
* //
|
|
448
|
+
* // 手动启用渲染,持绘移
|
|
448
449
|
* viewer.enableRender(2000);
|
|
449
450
|
*
|
|
450
451
|
* // 使用默认时间启用渲染
|
|
@@ -455,8 +456,8 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
455
456
|
/**
|
|
456
457
|
* 获取当前的FPS(每秒帧数)值
|
|
457
458
|
*
|
|
458
|
-
*
|
|
459
|
-
* FPS
|
|
459
|
+
* 返回当前查看器的实时渲染帧率,用于性能监控和调试、
|
|
460
|
+
* FPS值反映了渲染性能的高低,数值越高表示性能越好、
|
|
460
461
|
*
|
|
461
462
|
* @returns 当前的FPS值
|
|
462
463
|
* @internal 内部方法,主要用于性能监控
|
|
@@ -469,29 +470,29 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
469
470
|
*/
|
|
470
471
|
getFps(): number;
|
|
471
472
|
/**
|
|
472
|
-
*
|
|
473
|
+
* 判断是否个D查看器
|
|
473
474
|
*
|
|
474
|
-
* DxfViewer
|
|
475
|
-
* 这个方法返回false
|
|
475
|
+
* DxfViewer明D查看器,专门用于渲染DXF/DWG格式的工程图纸、
|
|
476
|
+
* 这个方法返回false,表示当前查看器不支指D渲染、
|
|
476
477
|
*
|
|
477
|
-
* @returns 总是返回false,因为DxfViewer
|
|
478
|
-
* @internal
|
|
478
|
+
* @returns 总是返回false,因为DxfViewer明D查看器
|
|
479
|
+
* @internal 内部方法,用于框架内部的查看器类型判方
|
|
479
480
|
*/
|
|
480
481
|
is3d(): boolean;
|
|
481
482
|
/**
|
|
482
|
-
*
|
|
483
|
+
* 销每DxfViewer 实例
|
|
483
484
|
*
|
|
484
|
-
*
|
|
485
|
+
* 彻底清理和释改DxfViewer 占用的所有资源,包括,
|
|
485
486
|
* - 停止所有异步任务和动画循环
|
|
486
487
|
* - 销毁UI组件(布局栏、标记管理器等)
|
|
487
|
-
* - 清理Three.js
|
|
488
|
+
* - 清理Three.js资源(渲染器、几何体、材质等,
|
|
488
489
|
* - 移除事件监听器
|
|
489
490
|
* - 释放内存和GPU资源
|
|
490
491
|
*
|
|
491
492
|
* 注意:销毁顺序很重要,例如测量功能依赖于渲染器,
|
|
492
|
-
*
|
|
493
|
+
* 必须在销毁渲染器之前先销毁测量功能、
|
|
493
494
|
*
|
|
494
|
-
* 调用此方法后,DxfViewer
|
|
495
|
+
* 调用此方法后,DxfViewer实例将不可用,所有相关资源都会被释放、
|
|
495
496
|
*
|
|
496
497
|
* @example
|
|
497
498
|
* ```typescript
|
|
@@ -511,24 +512,24 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
511
512
|
*
|
|
512
513
|
* 加载DXF/DWG格式的工程图纸文件,支持主模型和叠加模型的概念:
|
|
513
514
|
*
|
|
514
|
-
* **主模型
|
|
515
|
-
* - 第一个加载的文件将被视为"主模型
|
|
516
|
-
* -
|
|
515
|
+
* **主模型vs 叠加模型,*
|
|
516
|
+
* - 第一个加载的文件将被视为"主模型
|
|
517
|
+
* - 后续加载的文件称个叠加模型"
|
|
517
518
|
*
|
|
518
|
-
*
|
|
519
|
-
* -
|
|
519
|
+
* **加载内容差异,*
|
|
520
|
+
* - **主模型*:加载所有内容,包括模型空间和图纸空闭
|
|
520
521
|
* - **叠加模型**:仅加载模型空间,且只能叠加到主模型的模型空间上
|
|
521
522
|
*
|
|
522
523
|
* **功能特性:**
|
|
523
524
|
* - 支持进度回调,实时显示加载进度
|
|
524
525
|
* - 支持本地缓存以提升性能
|
|
525
526
|
* - 支持模型合并优化
|
|
526
|
-
* - 支持编码设置(处理不同字符集的DXF
|
|
527
|
-
* -
|
|
527
|
+
* - 支持编码设置(处理不同字符集的DXF文件,
|
|
528
|
+
* - 支持颜色覆盖(统一修改模型颜色,
|
|
528
529
|
* - 自动处理图纸空间的忽略逻辑
|
|
529
530
|
*
|
|
530
531
|
* @param modelCfg - 要加载的模型配置
|
|
531
|
-
* @param onProgress -
|
|
532
|
+
* @param onProgress - 加载进度回调函数,可通
|
|
532
533
|
*
|
|
533
534
|
* @returns Promise<void> - 当模型加载完成时resolve
|
|
534
535
|
*
|
|
@@ -543,7 +544,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
543
544
|
*
|
|
544
545
|
* const modelCfg = {
|
|
545
546
|
* modelId: "primary_model",
|
|
546
|
-
* name: "
|
|
547
|
+
* name: "主模型,
|
|
547
548
|
* src: "http://example.com/primary.dxf",
|
|
548
549
|
* merge: true, // 启用模型合并优化
|
|
549
550
|
* encoding: "utf-8", // 文件编码
|
|
@@ -557,11 +558,11 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
557
558
|
* const progress = (event.loaded * 100) / event.total;
|
|
558
559
|
* console.log(`加载进度: ${progress.toFixed(1)}%`);
|
|
559
560
|
*
|
|
560
|
-
* // 可以在这里更新UI
|
|
561
|
+
* // 可以在这里更新UI进度材
|
|
561
562
|
* updateProgressBar(progress);
|
|
562
563
|
* });
|
|
563
564
|
*
|
|
564
|
-
* console.log("
|
|
565
|
+
* console.log("模型加载完成,);
|
|
565
566
|
*
|
|
566
567
|
* // 现在可以加载叠加模型
|
|
567
568
|
* const overlayCfg = {
|
|
@@ -583,11 +584,11 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
583
584
|
*
|
|
584
585
|
* @example
|
|
585
586
|
* ```typescript
|
|
586
|
-
* //
|
|
587
|
+
* // 加载多个模型的示供
|
|
587
588
|
* const models = [
|
|
588
589
|
* { modelId: "floor1", name: "一层平面图", src: "floor1.dxf" },
|
|
589
|
-
* { modelId: "floor2", name: "
|
|
590
|
-
* { modelId: "structure", name: "
|
|
590
|
+
* { modelId: "floor2", name: "二层平面图, src: "floor2.dxf" },
|
|
591
|
+
* { modelId: "structure", name: "结构图, src: "structure.dxf" },
|
|
591
592
|
* ];
|
|
592
593
|
*
|
|
593
594
|
* for (const model of models) {
|
|
@@ -601,10 +602,10 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
601
602
|
/**
|
|
602
603
|
* 卸载DXF模型
|
|
603
604
|
*
|
|
604
|
-
* 从查看器中移除指定的DXF
|
|
605
|
-
*
|
|
605
|
+
* 从查看器中移除指定的DXF模型,清理相关资源、
|
|
606
|
+
* 这个方法目前还没有实现,是为未来版本预留的功能、
|
|
606
607
|
*
|
|
607
|
-
* @param modelId
|
|
608
|
+
* @param modelId 可通- 要卸载的模型ID。如果不提供,则可能卸载所有模型
|
|
608
609
|
* @internal 内部方法,暂未实现
|
|
609
610
|
* @throws {Error} 抛出"Not implemented yet!"错误,表示功能尚未实现
|
|
610
611
|
*
|
|
@@ -619,7 +620,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
619
620
|
* 将模型数据添加到查看器
|
|
620
621
|
*
|
|
621
622
|
* 这个方法负责将加载的DXF模型正式集成到Three.js场景中,
|
|
622
|
-
*
|
|
623
|
+
* 设置必要的属性和状态,确保模型能够正确渲染和交互、
|
|
623
624
|
*
|
|
624
625
|
* @param modelData - 2D模型数据,包含模型ID和DXF数据
|
|
625
626
|
* @returns 返回创建的Model2d实例
|
|
@@ -647,10 +648,10 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
647
648
|
protected getLoadedDxfModelIds(): string[];
|
|
648
649
|
/**
|
|
649
650
|
* @description {en} Gets layout names of the master model.
|
|
650
|
-
* @description {zh}
|
|
651
|
+
* @description {zh} 获取主模型的布局名称、
|
|
651
652
|
* @returns
|
|
652
653
|
* - {en} Layout names of the master model.
|
|
653
|
-
* - {zh}
|
|
654
|
+
* - {zh} 主模型的布局名称、
|
|
654
655
|
* @example
|
|
655
656
|
* ```typescript
|
|
656
657
|
* const layoutNames = dxfViewer.getLayoutNames();
|
|
@@ -659,17 +660,17 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
659
660
|
*/
|
|
660
661
|
getLayoutNames(): string[];
|
|
661
662
|
/**
|
|
662
|
-
*
|
|
663
|
-
*
|
|
663
|
+
* 获取布局、
|
|
664
|
+
* 仅返回主模型的布局、
|
|
664
665
|
*/
|
|
665
666
|
protected getLayouts(): ILayoutObject[];
|
|
666
667
|
private handleOverlayDxf;
|
|
667
668
|
/**
|
|
668
669
|
* @description {en} Activates a layout.
|
|
669
|
-
* @description {zh}
|
|
670
|
+
* @description {zh} 激活布局、
|
|
670
671
|
* @param layoutName
|
|
671
672
|
* - {en} The name of the layout to be activated.
|
|
672
|
-
* - {zh}
|
|
673
|
+
* - {zh} 要激活的布局名称、
|
|
673
674
|
* @example
|
|
674
675
|
* ```typescript
|
|
675
676
|
* viewer.activateLayout('Layout1');
|
|
@@ -679,10 +680,10 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
679
680
|
private cancelAllOperations;
|
|
680
681
|
/**
|
|
681
682
|
* @description {en} Gets active layout.
|
|
682
|
-
* @description {zh}
|
|
683
|
+
* @description {zh} 获取当前布局、
|
|
683
684
|
* @returns
|
|
684
685
|
* - {en} Active layout name or undefined.
|
|
685
|
-
* - {zh} 当前激活的布局名称或undefined
|
|
686
|
+
* - {zh} 当前激活的布局名称或undefined、
|
|
686
687
|
* @example
|
|
687
688
|
* ``` typescript
|
|
688
689
|
* const activeLayout = viewer.getActiveLayoutName();
|
|
@@ -692,10 +693,10 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
692
693
|
getActiveLayoutName(): string | undefined;
|
|
693
694
|
/**
|
|
694
695
|
* @description {en} Gets dxf layers.
|
|
695
|
-
* @description {zh} 获取dxf
|
|
696
|
+
* @description {zh} 获取dxf图层、
|
|
696
697
|
* @returns
|
|
697
698
|
* - {en} Dxf layers.
|
|
698
|
-
* - {zh} dxf
|
|
699
|
+
* - {zh} dxf图层、
|
|
699
700
|
* @example
|
|
700
701
|
* ``` typescript
|
|
701
702
|
* const dxfLayers = viewer.getLayers();
|
|
@@ -708,26 +709,26 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
708
709
|
*/
|
|
709
710
|
getLayers(): (DxfLayers | PdfLayers)[];
|
|
710
711
|
/**
|
|
711
|
-
* 设置模型(即dxf
|
|
712
|
-
* @throws 如果modelId
|
|
712
|
+
* 设置模型(即dxf文件)的可见性、
|
|
713
|
+
* @throws 如果modelId不存在则抛出异常、
|
|
713
714
|
* @internal
|
|
714
715
|
*/
|
|
715
716
|
setModelVisibility(modelId: string, visible: boolean): void;
|
|
716
717
|
/**
|
|
717
718
|
* @description {en} Sets layer's visibility.
|
|
718
|
-
* @description {zh}
|
|
719
|
+
* @description {zh} 设置图层的可见性、
|
|
719
720
|
* @param layerName
|
|
720
721
|
* - {en} Layer's name to show or hide.
|
|
721
|
-
* - {zh}
|
|
722
|
+
* - {zh} 要显示或隐藏的图层名称、
|
|
722
723
|
* @param visible
|
|
723
724
|
* - {en} Layer's target visibility.
|
|
724
|
-
* - {zh}
|
|
725
|
+
* - {zh} 图层的目标可见性、
|
|
725
726
|
* @param modelId
|
|
726
727
|
* - {en} Useful when more than one model is loaded, if not specified, will use the master model.
|
|
727
|
-
* - {zh}
|
|
728
|
+
* - {zh} 当加载了多个模型时有用,如果未指定,将使用主模型、
|
|
728
729
|
* @throws Error
|
|
729
730
|
* - {en}: Throws exception if given modelId doesn't exist.
|
|
730
|
-
* - {zh} 如果给定的modelId
|
|
731
|
+
* - {zh} 如果给定的modelId不存在,则抛出异常、
|
|
731
732
|
* @example
|
|
732
733
|
* ``` typescript
|
|
733
734
|
* // Hides layer "0"
|
|
@@ -742,12 +743,12 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
742
743
|
setLayerOpacity(layerName: string, opacity: number, modelId?: string): void;
|
|
743
744
|
/**
|
|
744
745
|
* 设置图层的颜色
|
|
745
|
-
* @throws
|
|
746
|
+
* @throws 如果图层不存在则抛出异常、
|
|
746
747
|
* @internal
|
|
747
748
|
*/
|
|
748
749
|
setLayerColor(layerName: string, color: number, modelId?: string): void;
|
|
749
750
|
/**
|
|
750
|
-
*
|
|
751
|
+
* 重置图层的颜色、
|
|
751
752
|
* @internal
|
|
752
753
|
*/
|
|
753
754
|
resetLayerColor(layerName: string, modelId?: string): void;
|
|
@@ -755,12 +756,12 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
755
756
|
* @description {en} Sets font.
|
|
756
757
|
* This needs to be called before loading a dxf, it won't affect any loaded text.
|
|
757
758
|
* It accepts shx or typeface formats. For typeface, it only support passing in 1 font file in the array for now.
|
|
758
|
-
* @description {zh}
|
|
759
|
-
* 需要在加载dxf
|
|
760
|
-
* 支持shx或typeface格式。对于typeface,目前只支持传入1
|
|
759
|
+
* @description {zh} 设置字体、
|
|
760
|
+
* 需要在加载dxf之前调用,不会影响已加载的文字、
|
|
761
|
+
* 支持shx或typeface格式。对于typeface,目前只支持传入1个字体文件、
|
|
761
762
|
* @param urls
|
|
762
763
|
* - {en} font file urls.
|
|
763
|
-
* - {zh}
|
|
764
|
+
* - {zh} 字体文件链接、
|
|
764
765
|
* @example
|
|
765
766
|
* ```typescript
|
|
766
767
|
* viewer.setFont(["https://example.com/xxx.shx"]);
|
|
@@ -769,9 +770,9 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
769
770
|
setFont(urls: string[]): Promise<void>;
|
|
770
771
|
getFont(): FontManager | undefined;
|
|
771
772
|
/**
|
|
772
|
-
*
|
|
773
|
+
* 设置加载管理器、
|
|
773
774
|
* @internal
|
|
774
|
-
* 需要在加载dxf
|
|
775
|
+
* 需要在加载dxf之前调用,用于加载本地外部链接、
|
|
775
776
|
* @param manager
|
|
776
777
|
*/
|
|
777
778
|
setLoadingManager(manager: THREE.LoadingManager): void;
|
|
@@ -796,8 +797,8 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
796
797
|
/**
|
|
797
798
|
* @description {en} Gets current view extent.
|
|
798
799
|
* This is useful for user to save this value as a viewpoint, and jump to this viewpoint next time.
|
|
799
|
-
* @description {zh}
|
|
800
|
-
*
|
|
800
|
+
* @description {zh} 获取当前视图范围、
|
|
801
|
+
* 用户可使用该接口获取当前视口范围,并在适当的场景下跳转到该视口范围、
|
|
801
802
|
* @example
|
|
802
803
|
* ``` typescript
|
|
803
804
|
* const box = viewer.getCurrentViewExtent();
|
|
@@ -813,7 +814,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
813
814
|
get measurePlugin(): MeasurementPlugin | undefined;
|
|
814
815
|
/**
|
|
815
816
|
* @description {en} Activates one of "Distance", "Area" or "Angle" measurement
|
|
816
|
-
* @description {zh}
|
|
817
|
+
* @description {zh} 激活距离", "面积" 或者"角度"测量
|
|
817
818
|
* @param type
|
|
818
819
|
* - "Distance", "Area" or "Angle"
|
|
819
820
|
* @example
|
|
@@ -825,7 +826,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
825
826
|
activateMeasurement(type: MeasurementType): void;
|
|
826
827
|
/**
|
|
827
828
|
* @description {en} Deactivates measurement.
|
|
828
|
-
* @description {zh}
|
|
829
|
+
* @description {zh} 退出测量、
|
|
829
830
|
* @example
|
|
830
831
|
* ``` typescript
|
|
831
832
|
* viewer.deactivateMeasurement();
|
|
@@ -835,7 +836,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
835
836
|
deactivateMeasurement(): void;
|
|
836
837
|
/**
|
|
837
838
|
* @description {en} Gets active measurement type.
|
|
838
|
-
* @description {zh}
|
|
839
|
+
* @description {zh} 获取当前激活的测量类型、
|
|
839
840
|
* @returns
|
|
840
841
|
* - "Distance", "Area" or "Angle" or undefined
|
|
841
842
|
* @example
|
|
@@ -848,10 +849,10 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
848
849
|
getActiveMeasurementType(): MeasurementType | undefined;
|
|
849
850
|
/**
|
|
850
851
|
* @description {en} Gets all measurements.
|
|
851
|
-
* @description {zh}
|
|
852
|
+
* @description {zh} 获取所有测量数据、
|
|
852
853
|
* @returns
|
|
853
854
|
* - {en} measurement data array.
|
|
854
|
-
* - {zh}
|
|
855
|
+
* - {zh} 测量数据数组、
|
|
855
856
|
* @example
|
|
856
857
|
* ``` typescript
|
|
857
858
|
* const measurementData = viewer.getMeasurements();
|
|
@@ -862,16 +863,16 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
862
863
|
getMeasurements(): MeasurementData[];
|
|
863
864
|
/**
|
|
864
865
|
* @description {en} Cancels current measurement. This won't deactivate measurement, rather, you can start a new measurement.
|
|
865
|
-
* @description {zh}
|
|
866
|
+
* @description {zh} 取消当前的测量绘制。这并不会退出测量,用户可以开始一个新的测量、
|
|
866
867
|
* @deprecated use MeasurePlugin instead
|
|
867
868
|
*/
|
|
868
869
|
cancelMeasurement(): void;
|
|
869
870
|
/**
|
|
870
871
|
* @description {en} Sets measurement data.
|
|
871
|
-
* @description {zh}
|
|
872
|
+
* @description {zh} 设置测量数据、
|
|
872
873
|
* @param measurementData
|
|
873
874
|
* - {en} measurement data array.
|
|
874
|
-
* - {zh}
|
|
875
|
+
* - {zh} 测量数据数组、
|
|
875
876
|
* @example
|
|
876
877
|
* ``` typescript
|
|
877
878
|
* const measurementData = [{
|
|
@@ -898,10 +899,10 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
898
899
|
unselectMeasurement(): void;
|
|
899
900
|
/**
|
|
900
901
|
* @description {en} Removes a measurement by id.
|
|
901
|
-
* @description {zh} 根据id
|
|
902
|
+
* @description {zh} 根据id删除测量数据、
|
|
902
903
|
* @param id
|
|
903
904
|
* - {en} Measurement data id.
|
|
904
|
-
* - {zh} 测量数据id
|
|
905
|
+
* - {zh} 测量数据id、
|
|
905
906
|
* @example
|
|
906
907
|
* ``` typescript
|
|
907
908
|
* const id = "c6ea70a3-ddb0-4dd0-87c8-bd2491936428";
|
|
@@ -919,7 +920,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
919
920
|
setMeasurementVisibility(id: string, visible: boolean): boolean;
|
|
920
921
|
/**
|
|
921
922
|
* @description {en} Clears measurement results.
|
|
922
|
-
* @description {zh}
|
|
923
|
+
* @description {zh} 清除测量结果、
|
|
923
924
|
* @example
|
|
924
925
|
* ``` typescript
|
|
925
926
|
* viewer.clearMeasurements();
|
|
@@ -934,10 +935,10 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
934
935
|
getMarkupManager(): MarkupManager | undefined;
|
|
935
936
|
/**
|
|
936
937
|
* @description {en} Activates markup feature.
|
|
937
|
-
* @description {zh}
|
|
938
|
+
* @description {zh} 激活标注功能、
|
|
938
939
|
* @param type
|
|
939
940
|
* - {en} markup type.
|
|
940
|
-
* - {zh}
|
|
941
|
+
* - {zh} 标注类型、
|
|
941
942
|
* @example
|
|
942
943
|
* ``` typescript
|
|
943
944
|
* const markupType = MarkupType.Arrow;
|
|
@@ -948,7 +949,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
948
949
|
activateMarkup(type: MarkupType): void;
|
|
949
950
|
/**
|
|
950
951
|
* @description {en} Deactivates markup feature.
|
|
951
|
-
* @description {zh}
|
|
952
|
+
* @description {zh} 退出标注功能、
|
|
952
953
|
* @example
|
|
953
954
|
* ``` typescript
|
|
954
955
|
* viewer.deactivateMarkup();
|
|
@@ -957,10 +958,10 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
957
958
|
deactivateMarkup(): void;
|
|
958
959
|
/**
|
|
959
960
|
* @description {en} Gets active markup type.
|
|
960
|
-
* @description {zh}
|
|
961
|
+
* @description {zh} 获取激活的标注类型、
|
|
961
962
|
* @returns
|
|
962
963
|
* - {en} markup type.
|
|
963
|
-
* - {zh}
|
|
964
|
+
* - {zh} 标注类型、
|
|
964
965
|
* @example
|
|
965
966
|
* ``` typescript
|
|
966
967
|
* const markupType = viewer.getActiveMarkupType();
|
|
@@ -1006,10 +1007,10 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1006
1007
|
getMarkupFontSize(): number | undefined;
|
|
1007
1008
|
/**
|
|
1008
1009
|
* @description {en} Gets all markups.
|
|
1009
|
-
* @description {zh}
|
|
1010
|
+
* @description {zh} 获取所有标注数据、
|
|
1010
1011
|
* @returns
|
|
1011
1012
|
* - {en} markup data array.
|
|
1012
|
-
* - {zh}
|
|
1013
|
+
* - {zh} 标注数据数组、
|
|
1013
1014
|
* @example
|
|
1014
1015
|
* ``` typescript
|
|
1015
1016
|
* const markupData = viewer.getMarkups();
|
|
@@ -1019,10 +1020,10 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1019
1020
|
getMarkups(): MarkupData[];
|
|
1020
1021
|
/**
|
|
1021
1022
|
* @description {en} Adds markups to active layout.
|
|
1022
|
-
* @description {zh}
|
|
1023
|
+
* @description {zh} 添加标注到当前布局、
|
|
1023
1024
|
* @param markupDataArray
|
|
1024
1025
|
* - {en} markup data array.
|
|
1025
|
-
* - {zh}
|
|
1026
|
+
* - {zh} 标注数据数组、
|
|
1026
1027
|
* @example
|
|
1027
1028
|
* ``` typescript
|
|
1028
1029
|
* const markupData = [{
|
|
@@ -1045,13 +1046,13 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1045
1046
|
setMarkupVisibility(id: string, visible: boolean): boolean;
|
|
1046
1047
|
/**
|
|
1047
1048
|
* @description {en} Updates a markup.
|
|
1048
|
-
* @description {zh}
|
|
1049
|
+
* @description {zh} 更新标注、
|
|
1049
1050
|
* @param {MarkupData} markup
|
|
1050
1051
|
* - {en} markup data.
|
|
1051
|
-
* - {zh}
|
|
1052
|
+
* - {zh} 标注数据、
|
|
1052
1053
|
* @returns
|
|
1053
1054
|
* - {en} Whether update successfully, true means success, false means failure.
|
|
1054
|
-
* - {zh} 是否更新成功,true表示成功,false
|
|
1055
|
+
* - {zh} 是否更新成功,true表示成功,false表示失败、
|
|
1055
1056
|
* @example
|
|
1056
1057
|
* ``` typescript
|
|
1057
1058
|
* const markupData = {
|
|
@@ -1067,13 +1068,13 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1067
1068
|
updateMarkup(markup: MarkupData): boolean;
|
|
1068
1069
|
/**
|
|
1069
1070
|
* @description {en} Removes a markup by markup id.
|
|
1070
|
-
* @description {zh} 根据标注id
|
|
1071
|
+
* @description {zh} 根据标注id删除标注、
|
|
1071
1072
|
* @param {string} id
|
|
1072
1073
|
* - {en} markup id.
|
|
1073
|
-
* - {zh} 标注id
|
|
1074
|
+
* - {zh} 标注id、
|
|
1074
1075
|
* @returns
|
|
1075
1076
|
* - {en} Whether remove successfully, true means success, false means failure.
|
|
1076
|
-
* - {zh} 是否删除成功,true表示成功,false
|
|
1077
|
+
* - {zh} 是否删除成功,true表示成功,false表示失败、
|
|
1077
1078
|
* @example
|
|
1078
1079
|
* ``` typescript
|
|
1079
1080
|
* const markupId = "c6ea70a3-ddb0-4dd0-87c8-bd2491936428";
|
|
@@ -1083,7 +1084,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1083
1084
|
removeMarkup(id: string): boolean;
|
|
1084
1085
|
/**
|
|
1085
1086
|
* @description {en} Clears markups.
|
|
1086
|
-
* @description {zh}
|
|
1087
|
+
* @description {zh} 清除所有标注、
|
|
1087
1088
|
* @example
|
|
1088
1089
|
* ``` typescript
|
|
1089
1090
|
* viewer.clearMarkups();
|
|
@@ -1114,7 +1115,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1114
1115
|
protected getHitResultByNdcCoordinate(coord: Vector2): Vector2 | undefined;
|
|
1115
1116
|
/**
|
|
1116
1117
|
* @description {en} Asks user to select a box area, and zooms to it.
|
|
1117
|
-
* @description {zh}
|
|
1118
|
+
* @description {zh} 询问用户选择一个框选区域,然后缩放到该区域、
|
|
1118
1119
|
* @example
|
|
1119
1120
|
* ``` typescript
|
|
1120
1121
|
* viewer.zoomToRect();
|
|
@@ -1152,10 +1153,10 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1152
1153
|
* @description {zh} 重置视图大小
|
|
1153
1154
|
* @param {number} width
|
|
1154
1155
|
* - {en} width of viewer
|
|
1155
|
-
* - {zh}
|
|
1156
|
+
* - {zh} 视图宽度、
|
|
1156
1157
|
* @param {number} height
|
|
1157
1158
|
* - {en} height of viewer
|
|
1158
|
-
* - {zh}
|
|
1159
|
+
* - {zh} 视图高度、
|
|
1159
1160
|
* @example
|
|
1160
1161
|
* ```typescript
|
|
1161
1162
|
* const width = 800;
|
|
@@ -1180,23 +1181,23 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1180
1181
|
/**
|
|
1181
1182
|
* 根据给定的鼠标位置获取相交对象
|
|
1182
1183
|
*
|
|
1183
|
-
* 使用射线投射技术检测鼠标位置与场景中的3D
|
|
1184
|
-
*
|
|
1184
|
+
* 使用射线投射技术检测鼠标位置与场景中的3D对象的相交情况、
|
|
1185
|
+
* 这个方法是对象选择和交互的基础,用于确定用户点击了哪个对象、
|
|
1185
1186
|
*
|
|
1186
1187
|
* @param event - 鼠标事件信息,可选。如果不传入,则使用(0, 0)作为射线投射起点
|
|
1187
|
-
* @returns
|
|
1188
|
+
* @returns 相交对象的数组,按距离排序(最近的在前,
|
|
1188
1189
|
* @private 内部方法,仅供框架内部使用
|
|
1189
1190
|
*/
|
|
1190
1191
|
private getIntersections;
|
|
1191
1192
|
/**
|
|
1192
|
-
*
|
|
1193
|
+
* 重写:事件级缓存的射线相事
|
|
1193
1194
|
*/
|
|
1194
1195
|
intersectObjectsCached(event: EventInfo, objects: THREE.Object3D[], recursive: boolean, cacheKey: string): THREE.Intersection<THREE.Object3D<THREE.Event>>[];
|
|
1195
1196
|
/**
|
|
1196
1197
|
* 处理鼠标点击事件
|
|
1197
1198
|
*
|
|
1198
|
-
*
|
|
1199
|
-
*
|
|
1199
|
+
* 处理用户的鼠标点击交互,包括对象选择、取消选择等操作、
|
|
1200
|
+
* 这个方法会检查各种状态(如测量模式、标注模式等)以避免冲突、
|
|
1200
1201
|
*
|
|
1201
1202
|
* @param event - 鼠标事件信息,包含点击位置、按钮状态等
|
|
1202
1203
|
* @private 内部方法,由事件系统调用
|
|
@@ -1225,7 +1226,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1225
1226
|
*/
|
|
1226
1227
|
private selectSmallestDrawable;
|
|
1227
1228
|
/**
|
|
1228
|
-
* 判断 drawable
|
|
1229
|
+
* 判断 drawable 是否为封闭图录
|
|
1229
1230
|
*/
|
|
1230
1231
|
private isClosedShape;
|
|
1231
1232
|
/**
|
|
@@ -1245,8 +1246,8 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1245
1246
|
*/
|
|
1246
1247
|
private calculateLineLength;
|
|
1247
1248
|
/**
|
|
1248
|
-
*
|
|
1249
|
-
* depthTest
|
|
1249
|
+
* 选择或取消选择一个对象、
|
|
1250
|
+
* depthTest 默认关闭。当对象相互覆盖时,高亮效果会更加明显、
|
|
1250
1251
|
*/
|
|
1251
1252
|
protected selectObject(object?: THREE.Object3D, depthTest?: boolean): void;
|
|
1252
1253
|
/**
|
|
@@ -1267,7 +1268,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1267
1268
|
*/
|
|
1268
1269
|
protected flyToSelectedObject(): void;
|
|
1269
1270
|
/**
|
|
1270
|
-
* 飞向随机对象(通过 alt + r
|
|
1271
|
+
* 飞向随机对象(通过 alt + r)、
|
|
1271
1272
|
* 当数据错误或程序有bug时很有用,
|
|
1272
1273
|
* 这时我们在场景中看不到任何东西!
|
|
1273
1274
|
*/
|
|
@@ -1297,10 +1298,10 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1297
1298
|
goToHomeView(): void;
|
|
1298
1299
|
/**
|
|
1299
1300
|
* @description {en} Zooms to specific bounding box.
|
|
1300
|
-
* @description {zh}
|
|
1301
|
+
* @description {zh} 缩放到指定的包围监
|
|
1301
1302
|
* @param bbox
|
|
1302
1303
|
* - {en} 2d bounding box
|
|
1303
|
-
* - {zh} 2d
|
|
1304
|
+
* - {zh} 2d 包围盒、
|
|
1304
1305
|
* @example
|
|
1305
1306
|
* ``` typescript
|
|
1306
1307
|
* const box = { min: { x: 0, y: 0 }, max: { x: 10000, y: 10000} };
|
|
@@ -1310,7 +1311,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1310
1311
|
zoomToBBox(bbox: Box2): void;
|
|
1311
1312
|
/**
|
|
1312
1313
|
* @description {en} Zooms to view extent.
|
|
1313
|
-
* @description {zh}
|
|
1314
|
+
* @description {zh} 缩放到视图范图
|
|
1314
1315
|
* @example
|
|
1315
1316
|
* ``` typescript
|
|
1316
1317
|
* viewer.zoomToExtent();
|
|
@@ -1319,16 +1320,16 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1319
1320
|
zoomToExtent(): void;
|
|
1320
1321
|
/**
|
|
1321
1322
|
* @description {en} Sets background color.
|
|
1322
|
-
* @description {zh}
|
|
1323
|
+
* @description {zh} 设置背景颜色、
|
|
1323
1324
|
* @param r
|
|
1324
1325
|
* - {en} Red channel value between 0 and 1.
|
|
1325
|
-
* - {zh} 红色通道值,介于 0 和
|
|
1326
|
+
* - {zh} 红色通道值,介于 0 和1 之间、
|
|
1326
1327
|
* @param g
|
|
1327
1328
|
* - {en} Green channel value between 0 and 1.
|
|
1328
|
-
* - {zh} 绿色通道值,介于 0 和
|
|
1329
|
+
* - {zh} 绿色通道值,介于 0 和1 之间、
|
|
1329
1330
|
* @param b
|
|
1330
1331
|
* - {en} Blue channel value between 0 and 1.
|
|
1331
|
-
* -{zh} 蓝色通道值,介于 0 和
|
|
1332
|
+
* -{zh} 蓝色通道值,介于 0 和1 之间、
|
|
1332
1333
|
* @example
|
|
1333
1334
|
* ``` typescript
|
|
1334
1335
|
* // {en} Sets background to gray
|
|
@@ -1342,7 +1343,7 @@ export declare class DxfViewer extends BaseViewer {
|
|
|
1342
1343
|
*/
|
|
1343
1344
|
private getLayoutInfo;
|
|
1344
1345
|
/**
|
|
1345
|
-
*
|
|
1346
|
+
* 创建一个比包围盒大得多的地面平面、
|
|
1346
1347
|
*/
|
|
1347
1348
|
private updateGroundPlane;
|
|
1348
1349
|
/**
|