@x-viewer/core 0.21.12 → 0.21.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.
- package/dist/chunks/{libredwg-web-C9tIOt6T.js → libredwg-web-CpP0NVF7.js} +2 -2
- package/dist/index.esm.js +968 -964
- package/dist/types/core/controls/TransformControls.d.ts +292 -0
- package/dist/types/core/controls/TransformGizmo.d.ts +92 -0
- package/dist/types/core/controls/index.d.ts +2 -0
- package/dist/types/core/dxf/DxfLoader.d.ts +0 -11
- package/dist/types/core/dxf-parser/DxfParser.d.ts +2 -423
- package/dist/types/core/model/Model3d.d.ts +5 -0
- package/dist/types/core/utils/TextureUtils.d.ts +9 -0
- package/dist/types/core/viewers/BaseViewer.d.ts +4 -42
- package/dist/types/core/viewers/BimTilesViewer.d.ts +7 -0
- package/dist/types/core/viewers/Viewer2d.d.ts +0 -42
- package/dist/types/core/viewers/Viewer3d.d.ts +43 -4
- package/package.json +1 -1
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
import { TransformMode } from "./TransformGizmo";
|
|
3
|
+
export type TransformControlsMode = TransformMode;
|
|
4
|
+
export type PropertyName = "camera" | "object" | "enabled" | "axis" | "mode" | "translationSnap" | "rotationSnap" | "scaleSnap" | "space" | "size" | "dragging" | "showX" | "showY" | "showZ" | "minX" | "maxX" | "minY" | "maxY" | "minZ" | "maxZ" | "worldPosition" | "worldPositionStart" | "worldQuaternion" | "worldQuaternionStart" | "cameraPosition" | "cameraQuaternion" | "pointStart" | "pointEnd" | "rotationAxis" | "rotationAngle" | "eye";
|
|
5
|
+
export type EventName = "camera-changed" | "object-changed" | "enabled-changed" | "axis-changed" | "mode-changed" | "translationSnap-changed" | "rotationSnap-changed" | "scaleSnap-changed" | "space-changed" | "size-changed" | "dragging-changed" | "showX-changed" | "showY-changed" | "showZ-changed" | "minX-changed" | "maxX-changed" | "minY-changed" | "maxY-changed" | "minZ-changed" | "maxZ-changed" | "worldPosition-changed" | "worldPositionStart-changed" | "worldQuaternion-changed" | "worldQuaternionStart-changed" | "cameraPosition-changed" | "cameraQuaternion-changed" | "pointStart-changed" | "pointEnd-changed" | "rotationAxis-changed" | "rotationAngle-changed" | "eye-changed";
|
|
6
|
+
export interface TransformControlsEventMap {
|
|
7
|
+
/**
|
|
8
|
+
* Fires if any type of change (object or property change) is performed. Property changes are separate events you
|
|
9
|
+
* can add event listeners to. The event type is "propertyname-changed".
|
|
10
|
+
*/
|
|
11
|
+
change: object;
|
|
12
|
+
/**
|
|
13
|
+
* Fires if a pointer (mouse/touch) becomes active.
|
|
14
|
+
*/
|
|
15
|
+
mouseDown: {
|
|
16
|
+
mode: TransformControlsMode;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Fires if a pointer (mouse/touch) is no longer active.
|
|
20
|
+
*/
|
|
21
|
+
mouseUp: {
|
|
22
|
+
mode: TransformControlsMode;
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Fires if the controlled 3D object is changed.
|
|
26
|
+
*/
|
|
27
|
+
objectChange: object;
|
|
28
|
+
/**
|
|
29
|
+
* start dragging.
|
|
30
|
+
*/
|
|
31
|
+
draggingStart: object;
|
|
32
|
+
/**
|
|
33
|
+
* dragging.
|
|
34
|
+
*/
|
|
35
|
+
dragging: object;
|
|
36
|
+
/**
|
|
37
|
+
* end dragging.
|
|
38
|
+
*/
|
|
39
|
+
draggingEnd: object;
|
|
40
|
+
"camera-changed": {
|
|
41
|
+
value: unknown;
|
|
42
|
+
};
|
|
43
|
+
"object-changed": {
|
|
44
|
+
value: unknown;
|
|
45
|
+
};
|
|
46
|
+
"enabled-changed": {
|
|
47
|
+
value: unknown;
|
|
48
|
+
};
|
|
49
|
+
"axis-changed": {
|
|
50
|
+
value: unknown;
|
|
51
|
+
};
|
|
52
|
+
"mode-changed": {
|
|
53
|
+
value: unknown;
|
|
54
|
+
};
|
|
55
|
+
"translationSnap-changed": {
|
|
56
|
+
value: unknown;
|
|
57
|
+
};
|
|
58
|
+
"rotationSnap-changed": {
|
|
59
|
+
value: unknown;
|
|
60
|
+
};
|
|
61
|
+
"scaleSnap-changed": {
|
|
62
|
+
value: unknown;
|
|
63
|
+
};
|
|
64
|
+
"space-changed": {
|
|
65
|
+
value: unknown;
|
|
66
|
+
};
|
|
67
|
+
"size-changed": {
|
|
68
|
+
value: unknown;
|
|
69
|
+
};
|
|
70
|
+
"dragging-changed": {
|
|
71
|
+
value: unknown;
|
|
72
|
+
};
|
|
73
|
+
"showX-changed": {
|
|
74
|
+
value: unknown;
|
|
75
|
+
};
|
|
76
|
+
"showY-changed": {
|
|
77
|
+
value: unknown;
|
|
78
|
+
};
|
|
79
|
+
"showZ-changed": {
|
|
80
|
+
value: unknown;
|
|
81
|
+
};
|
|
82
|
+
"minX-changed": {
|
|
83
|
+
value: unknown;
|
|
84
|
+
};
|
|
85
|
+
"maxX-changed": {
|
|
86
|
+
value: unknown;
|
|
87
|
+
};
|
|
88
|
+
"minY-changed": {
|
|
89
|
+
value: unknown;
|
|
90
|
+
};
|
|
91
|
+
"maxY-changed": {
|
|
92
|
+
value: unknown;
|
|
93
|
+
};
|
|
94
|
+
"minZ-changed": {
|
|
95
|
+
value: unknown;
|
|
96
|
+
};
|
|
97
|
+
"maxZ-changed": {
|
|
98
|
+
value: unknown;
|
|
99
|
+
};
|
|
100
|
+
"worldPosition-changed": {
|
|
101
|
+
value: unknown;
|
|
102
|
+
};
|
|
103
|
+
"worldPositionStart-changed": {
|
|
104
|
+
value: unknown;
|
|
105
|
+
};
|
|
106
|
+
"worldQuaternion-changed": {
|
|
107
|
+
value: unknown;
|
|
108
|
+
};
|
|
109
|
+
"worldQuaternionStart-changed": {
|
|
110
|
+
value: unknown;
|
|
111
|
+
};
|
|
112
|
+
"cameraPosition-changed": {
|
|
113
|
+
value: unknown;
|
|
114
|
+
};
|
|
115
|
+
"cameraQuaternion-changed": {
|
|
116
|
+
value: unknown;
|
|
117
|
+
};
|
|
118
|
+
"pointStart-changed": {
|
|
119
|
+
value: unknown;
|
|
120
|
+
};
|
|
121
|
+
"pointEnd-changed": {
|
|
122
|
+
value: unknown;
|
|
123
|
+
};
|
|
124
|
+
"rotationAxis-changed": {
|
|
125
|
+
value: unknown;
|
|
126
|
+
};
|
|
127
|
+
"rotationAngle-changed": {
|
|
128
|
+
value: unknown;
|
|
129
|
+
};
|
|
130
|
+
"eye-changed": {
|
|
131
|
+
value: unknown;
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* This class can be used to transform objects in 3D space by adapting a similar interaction model of DCC tools like
|
|
136
|
+
* Blender. Unlike other controls, it is not intended to transform the scene's camera.
|
|
137
|
+
*
|
|
138
|
+
* TransformControls expects that its attached 3D object is part of the scene graph.
|
|
139
|
+
*/
|
|
140
|
+
declare class TransformControls extends THREE.Controls<TransformControlsEventMap> {
|
|
141
|
+
object: any;
|
|
142
|
+
enabled: any;
|
|
143
|
+
camera: any;
|
|
144
|
+
axis: "X" | "Y" | "Z" | "E" | "XY" | "YZ" | "XZ" | "XYZ" | "XYZE" | null;
|
|
145
|
+
mode: any;
|
|
146
|
+
translationSnap: any;
|
|
147
|
+
rotationSnap: any;
|
|
148
|
+
scaleSnap: any;
|
|
149
|
+
space: any;
|
|
150
|
+
size: any;
|
|
151
|
+
dragging: any;
|
|
152
|
+
showX: any;
|
|
153
|
+
showY: any;
|
|
154
|
+
showZ: any;
|
|
155
|
+
minX: any;
|
|
156
|
+
maxX: any;
|
|
157
|
+
minY: any;
|
|
158
|
+
maxY: any;
|
|
159
|
+
minZ: any;
|
|
160
|
+
maxZ: any;
|
|
161
|
+
worldPosition: any;
|
|
162
|
+
worldPositionStart: any;
|
|
163
|
+
worldQuaternion: any;
|
|
164
|
+
worldQuaternionStart: any;
|
|
165
|
+
cameraPosition: any;
|
|
166
|
+
cameraQuaternion: any;
|
|
167
|
+
pointStart: any;
|
|
168
|
+
pointEnd: any;
|
|
169
|
+
rotationAxis: any;
|
|
170
|
+
rotationAngle: any;
|
|
171
|
+
eye: any;
|
|
172
|
+
_root: any;
|
|
173
|
+
_gizmo: any;
|
|
174
|
+
_plane: any;
|
|
175
|
+
_offset: any;
|
|
176
|
+
_startNorm: any;
|
|
177
|
+
_endNorm: any;
|
|
178
|
+
_cameraScale: any;
|
|
179
|
+
_parentPosition: any;
|
|
180
|
+
_parentQuaternion: any;
|
|
181
|
+
_parentQuaternionInv: any;
|
|
182
|
+
_parentScale: any;
|
|
183
|
+
_worldScaleStart: any;
|
|
184
|
+
_worldQuaternionInv: any;
|
|
185
|
+
_worldScale: any;
|
|
186
|
+
_positionStart: any;
|
|
187
|
+
_quaternionStart: any;
|
|
188
|
+
_scaleStart: any;
|
|
189
|
+
_getPointer: any;
|
|
190
|
+
_onPointerDown: any;
|
|
191
|
+
_onPointerHover: any;
|
|
192
|
+
_onPointerMove: any;
|
|
193
|
+
_onPointerUp: any;
|
|
194
|
+
constructor(camera: any, domElement?: any);
|
|
195
|
+
connect(): void;
|
|
196
|
+
disconnect(): void;
|
|
197
|
+
getHelper(): any;
|
|
198
|
+
pointerHover(pointer: any): void;
|
|
199
|
+
pointerDown(pointer: any): void;
|
|
200
|
+
pointerMove(pointer: any): void;
|
|
201
|
+
pointerUp(pointer: any): void;
|
|
202
|
+
dispose(): void;
|
|
203
|
+
attach(object: THREE.Object3D): this;
|
|
204
|
+
detach(): this;
|
|
205
|
+
reset(): void;
|
|
206
|
+
getRaycaster(): THREE.Raycaster;
|
|
207
|
+
getMode(): any;
|
|
208
|
+
setMode(mode: any): void;
|
|
209
|
+
setTranslationSnap(translationSnap: any): void;
|
|
210
|
+
setRotationSnap(rotationSnap: any): void;
|
|
211
|
+
setScaleSnap(scaleSnap: any): void;
|
|
212
|
+
setSize(size: any): void;
|
|
213
|
+
setSpace(space: any): void;
|
|
214
|
+
}
|
|
215
|
+
declare class TransformControlsGizmo extends THREE.Object3D {
|
|
216
|
+
object: any;
|
|
217
|
+
enabled: any;
|
|
218
|
+
camera: any;
|
|
219
|
+
axis: any;
|
|
220
|
+
mode: any;
|
|
221
|
+
translationSnap: any;
|
|
222
|
+
rotationSnap: any;
|
|
223
|
+
scaleSnap: any;
|
|
224
|
+
space: any;
|
|
225
|
+
size: any;
|
|
226
|
+
dragging: any;
|
|
227
|
+
showX: any;
|
|
228
|
+
showY: any;
|
|
229
|
+
showZ: any;
|
|
230
|
+
minX: any;
|
|
231
|
+
maxX: any;
|
|
232
|
+
minY: any;
|
|
233
|
+
maxY: any;
|
|
234
|
+
minZ: any;
|
|
235
|
+
maxZ: any;
|
|
236
|
+
worldPosition: any;
|
|
237
|
+
worldPositionStart: any;
|
|
238
|
+
worldQuaternion: any;
|
|
239
|
+
worldQuaternionStart: any;
|
|
240
|
+
cameraPosition: any;
|
|
241
|
+
cameraQuaternion: any;
|
|
242
|
+
pointStart: any;
|
|
243
|
+
pointEnd: any;
|
|
244
|
+
rotationAxis: any;
|
|
245
|
+
rotationAngle: any;
|
|
246
|
+
eye: any;
|
|
247
|
+
isTransformControlsGizmo: any;
|
|
248
|
+
readonly type: string;
|
|
249
|
+
gizmo: any;
|
|
250
|
+
picker: any;
|
|
251
|
+
helper: any;
|
|
252
|
+
constructor();
|
|
253
|
+
updateMatrixWorld(force: boolean): void;
|
|
254
|
+
}
|
|
255
|
+
declare class TransformControlsPlane extends THREE.Mesh {
|
|
256
|
+
object: any;
|
|
257
|
+
enabled: any;
|
|
258
|
+
camera: any;
|
|
259
|
+
axis: any;
|
|
260
|
+
mode: any;
|
|
261
|
+
translationSnap: any;
|
|
262
|
+
rotationSnap: any;
|
|
263
|
+
scaleSnap: any;
|
|
264
|
+
space: any;
|
|
265
|
+
size: any;
|
|
266
|
+
dragging: any;
|
|
267
|
+
showX: any;
|
|
268
|
+
showY: any;
|
|
269
|
+
showZ: any;
|
|
270
|
+
minX: any;
|
|
271
|
+
maxX: any;
|
|
272
|
+
minY: any;
|
|
273
|
+
maxY: any;
|
|
274
|
+
minZ: any;
|
|
275
|
+
maxZ: any;
|
|
276
|
+
worldPosition: any;
|
|
277
|
+
worldPositionStart: any;
|
|
278
|
+
worldQuaternion: any;
|
|
279
|
+
worldQuaternionStart: any;
|
|
280
|
+
cameraPosition: any;
|
|
281
|
+
cameraQuaternion: any;
|
|
282
|
+
pointStart: any;
|
|
283
|
+
pointEnd: any;
|
|
284
|
+
rotationAxis: any;
|
|
285
|
+
rotationAngle: any;
|
|
286
|
+
eye: any;
|
|
287
|
+
isTransformControlsPlane: boolean;
|
|
288
|
+
readonly type: string;
|
|
289
|
+
constructor();
|
|
290
|
+
updateMatrixWorld(force: boolean): void;
|
|
291
|
+
}
|
|
292
|
+
export { TransformControls, TransformControlsGizmo, TransformControlsPlane };
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import * as THREE from "three";
|
|
2
|
+
import type { BaseViewer } from "../viewers/BaseViewer";
|
|
3
|
+
/** Default translation snap (world units). */
|
|
4
|
+
export declare const DefaultGizmoTranslationSnap = 0.1;
|
|
5
|
+
/** Default rotation snap in degrees. */
|
|
6
|
+
export declare const DefaultGizmoRotationSnap = 15;
|
|
7
|
+
/** Default scale snap. */
|
|
8
|
+
export declare const DefaultGizmoScaleSnap = 0.25;
|
|
9
|
+
export declare enum CoordinateSpace {
|
|
10
|
+
Local = "Local",
|
|
11
|
+
World = "World"
|
|
12
|
+
}
|
|
13
|
+
export declare enum TransformMode {
|
|
14
|
+
Translate = "Translate",
|
|
15
|
+
Rotate = "Rotate",
|
|
16
|
+
Scale = "Scale"
|
|
17
|
+
}
|
|
18
|
+
export declare enum SnapType {
|
|
19
|
+
None = 0,
|
|
20
|
+
Floor = 1,
|
|
21
|
+
Wall = 2,
|
|
22
|
+
Entity = 4,
|
|
23
|
+
All = 65535
|
|
24
|
+
}
|
|
25
|
+
export interface SnapConfig {
|
|
26
|
+
snapEnabled?: boolean;
|
|
27
|
+
snapType?: SnapType;
|
|
28
|
+
snapRadius?: number;
|
|
29
|
+
gizmoTranslationSnap?: number;
|
|
30
|
+
gizmoScaleSnap?: number;
|
|
31
|
+
gizmoRotationSnap?: number;
|
|
32
|
+
}
|
|
33
|
+
export interface TransformGizmoCallbacks {
|
|
34
|
+
onDraggingStart?: () => void;
|
|
35
|
+
onDragging?: () => void;
|
|
36
|
+
onDraggingEnd?: () => void;
|
|
37
|
+
/** Fired after mode changes (toolbar, W/E/S keys, or API). */
|
|
38
|
+
onTransformModeChange?: (mode: TransformMode) => void;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Transform gizmo (translate / rotate / scale) for a {@link BaseViewer} 3D scene.
|
|
42
|
+
*/
|
|
43
|
+
export declare class TransformGizmo {
|
|
44
|
+
private viewer;
|
|
45
|
+
private scene;
|
|
46
|
+
private transformControl;
|
|
47
|
+
private dragStartPosition;
|
|
48
|
+
private dragStartRotation;
|
|
49
|
+
private dragStartScale;
|
|
50
|
+
private target;
|
|
51
|
+
active: boolean;
|
|
52
|
+
private space;
|
|
53
|
+
private lastMode;
|
|
54
|
+
private snapConfig;
|
|
55
|
+
private isShiftPressing;
|
|
56
|
+
private callbacks;
|
|
57
|
+
private readonly boundKeyDown;
|
|
58
|
+
private readonly boundKeyUp;
|
|
59
|
+
private readonly boundBeforeRender;
|
|
60
|
+
constructor(viewer: BaseViewer, callbacks?: TransformGizmoCallbacks);
|
|
61
|
+
setCallbacks(callbacks: TransformGizmoCallbacks): void;
|
|
62
|
+
attach(object: THREE.Object3D): void;
|
|
63
|
+
detach(): void;
|
|
64
|
+
isActive(): boolean;
|
|
65
|
+
getAttachedObject(): THREE.Object3D | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Recomputes gizmo handle positions from the attached object's world matrix
|
|
68
|
+
* after external edits (e.g. property panel) that do not emit transform control "change".
|
|
69
|
+
*/
|
|
70
|
+
refreshHelperToAttachedObject(): void;
|
|
71
|
+
private keyDownEvent;
|
|
72
|
+
private keyUpEvent;
|
|
73
|
+
private changedEvent;
|
|
74
|
+
private draggingStartEvent;
|
|
75
|
+
private draggingEvent;
|
|
76
|
+
private draggingEndEvent;
|
|
77
|
+
enableSnap(enable: boolean): void;
|
|
78
|
+
isSnapEnabled(): boolean;
|
|
79
|
+
getSpace(): CoordinateSpace;
|
|
80
|
+
setSpace(space: CoordinateSpace): void;
|
|
81
|
+
getTransformMode(): TransformMode;
|
|
82
|
+
setTransformMode(mode: TransformMode): void;
|
|
83
|
+
getTranslationSnap(): number;
|
|
84
|
+
setTranslationSnap(snap: number): void;
|
|
85
|
+
getRotationSnap(): number;
|
|
86
|
+
setRotationSnap(snap: number): void;
|
|
87
|
+
getScaleSnap(): number;
|
|
88
|
+
setScaleSnap(snap: number): void;
|
|
89
|
+
getSnapConfig(): SnapConfig;
|
|
90
|
+
setSnapConfig(config: SnapConfig): void;
|
|
91
|
+
destroy(): void;
|
|
92
|
+
}
|
|
@@ -282,17 +282,6 @@ export declare class DxfLoader extends THREE.Loader {
|
|
|
282
282
|
* Parses DWG/DXF from memory (same pipeline as {@link parse} after download).
|
|
283
283
|
*/
|
|
284
284
|
parseFromBuffer(data: ArrayBuffer | Uint8Array, onProgress?: (event: ProgressEvent) => void): Promise<IDxf>;
|
|
285
|
-
private parseDownloadedContent;
|
|
286
|
-
/**
|
|
287
|
-
* Aborts loading or parsing progress if any.
|
|
288
|
-
* We cann't resume any progress once aborted.
|
|
289
|
-
* TODO: the abort logic is not well tested yet, need to be verified.
|
|
290
|
-
*/
|
|
291
|
-
abort(): this;
|
|
292
|
-
/**
|
|
293
|
-
* If loading or parsing progress is aborted.
|
|
294
|
-
*/
|
|
295
|
-
isAborted(): boolean;
|
|
296
285
|
/**
|
|
297
286
|
* Generates/load threejs objects according to the dxf data.
|
|
298
287
|
* @param data
|