@chocozhang/three-model-render 1.0.3 → 1.0.5

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 (43) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +134 -97
  3. package/dist/camera/index.d.ts +59 -36
  4. package/dist/camera/index.js +83 -67
  5. package/dist/camera/index.js.map +1 -1
  6. package/dist/camera/index.mjs +83 -67
  7. package/dist/camera/index.mjs.map +1 -1
  8. package/dist/core/index.d.ts +81 -28
  9. package/dist/core/index.js +194 -104
  10. package/dist/core/index.js.map +1 -1
  11. package/dist/core/index.mjs +194 -105
  12. package/dist/core/index.mjs.map +1 -1
  13. package/dist/effect/index.d.ts +47 -134
  14. package/dist/effect/index.js +287 -288
  15. package/dist/effect/index.js.map +1 -1
  16. package/dist/effect/index.mjs +287 -288
  17. package/dist/effect/index.mjs.map +1 -1
  18. package/dist/index.d.ts +432 -349
  19. package/dist/index.js +1399 -1228
  20. package/dist/index.js.map +1 -1
  21. package/dist/index.mjs +1395 -1229
  22. package/dist/index.mjs.map +1 -1
  23. package/dist/interaction/index.d.ts +85 -52
  24. package/dist/interaction/index.js +168 -142
  25. package/dist/interaction/index.js.map +1 -1
  26. package/dist/interaction/index.mjs +168 -142
  27. package/dist/interaction/index.mjs.map +1 -1
  28. package/dist/loader/index.d.ts +106 -58
  29. package/dist/loader/index.js +492 -454
  30. package/dist/loader/index.js.map +1 -1
  31. package/dist/loader/index.mjs +491 -455
  32. package/dist/loader/index.mjs.map +1 -1
  33. package/dist/setup/index.d.ts +26 -24
  34. package/dist/setup/index.js +125 -163
  35. package/dist/setup/index.js.map +1 -1
  36. package/dist/setup/index.mjs +124 -164
  37. package/dist/setup/index.mjs.map +1 -1
  38. package/dist/ui/index.d.ts +18 -7
  39. package/dist/ui/index.js +45 -37
  40. package/dist/ui/index.js.map +1 -1
  41. package/dist/ui/index.mjs +45 -37
  42. package/dist/ui/index.mjs.map +1 -1
  43. package/package.json +50 -22
@@ -1,178 +1,138 @@
1
1
  import * as THREE from 'three';
2
2
 
3
3
  /**
4
- * 自动设置相机与基础灯光 - 优化版
5
- *
6
- * 优化内容:
7
- * - 添加灯光强度调整方法
8
- * - 完善错误处理
9
- * - 优化dispose逻辑
10
- *
11
- * - camera: THREE.PerspectiveCamera(会被移动并指向模型中心)
12
- * - scene: THREE.Scene(会把新创建的 light group 加入 scene)
13
- * - model: THREE.Object3D 已加载的模型(任意 transform/坐标)
14
- * - options: 可选配置(见 AutoSetupOptions)
15
- *
16
- * 返回 AutoSetupHandle,调用方在组件卸载/切换时请调用 handle.dispose()
4
+ * @file autoSetup.ts
5
+ * @description
6
+ * Automatically sets up the camera and basic lighting scene based on the model's bounding box.
17
7
  */
18
- function autoSetupCameraAndLight(camera, scene, model, options = {}) {
19
- var _a, _b, _c, _d, _e, _f, _g;
20
- // ✨ 边界检查
21
- if (!camera || !scene || !model) {
22
- throw new Error('autoSetupCameraAndLight: camera, scene, model are required');
23
- }
8
+ /**
9
+ * Fit camera to object bounding box
10
+ */
11
+ function fitCameraToObject(camera, object, padding = 1.2, elevation = 0.2) {
12
+ const box = new THREE.Box3().setFromObject(object);
13
+ if (!isFinite(box.min.x))
14
+ return { center: new THREE.Vector3(), radius: 0 };
15
+ const sphere = new THREE.Sphere();
16
+ box.getBoundingSphere(sphere);
17
+ const center = sphere.center.clone();
18
+ const radius = Math.max(0.001, sphere.radius);
19
+ const fov = (camera.fov * Math.PI) / 180;
20
+ const halfFov = fov / 2;
21
+ const sinHalfFov = Math.max(Math.sin(halfFov), 0.001);
22
+ const distance = (radius * padding) / sinHalfFov;
23
+ const dir = new THREE.Vector3(0, Math.sin(elevation), Math.cos(elevation)).normalize();
24
+ const desiredPos = center.clone().add(dir.multiplyScalar(distance));
25
+ camera.position.copy(desiredPos);
26
+ camera.lookAt(center);
27
+ camera.near = Math.max(0.001, radius / 1000);
28
+ camera.far = Math.max(1000, radius * 50);
29
+ camera.updateProjectionMatrix();
30
+ return { center, radius };
31
+ }
32
+ /**
33
+ * Setup default lighting for a model
34
+ */
35
+ function setupDefaultLights(scene, model, options = {}) {
36
+ const box = new THREE.Box3().setFromObject(model);
37
+ const sphere = new THREE.Sphere();
38
+ box.getBoundingSphere(sphere);
39
+ const center = sphere.center.clone();
40
+ const radius = Math.max(0.001, sphere.radius);
24
41
  const opts = {
25
- padding: (_a = options.padding) !== null && _a !== void 0 ? _a : 1.2,
26
- elevation: (_b = options.elevation) !== null && _b !== void 0 ? _b : 0.2,
27
- enableShadows: (_c = options.enableShadows) !== null && _c !== void 0 ? _c : false,
28
- shadowMapSize: (_d = options.shadowMapSize) !== null && _d !== void 0 ? _d : 1024,
29
- directionalCount: (_e = options.directionalCount) !== null && _e !== void 0 ? _e : 4,
30
- setMeshShadowProps: (_f = options.setMeshShadowProps) !== null && _f !== void 0 ? _f : true,
31
- renderer: (_g = options.renderer) !== null && _g !== void 0 ? _g : null,
42
+ padding: options.padding ?? 1.2,
43
+ elevation: options.elevation ?? 0.2,
44
+ enableShadows: options.enableShadows ?? false,
45
+ shadowMapSize: options.shadowMapSize ?? 1024,
46
+ directionalCount: options.directionalCount ?? 4,
47
+ setMeshShadowProps: options.setMeshShadowProps ?? true,
48
+ renderer: options.renderer ?? null,
32
49
  };
33
- try {
34
- // --- 1) 计算包围数据
35
- const box = new THREE.Box3().setFromObject(model);
36
- // ✨ 检查包围盒有效性
37
- if (!isFinite(box.min.x)) {
38
- throw new Error('autoSetupCameraAndLight: Invalid bounding box');
39
- }
40
- const sphere = new THREE.Sphere();
41
- box.getBoundingSphere(sphere);
42
- const center = sphere.center.clone();
43
- const radius = Math.max(0.001, sphere.radius);
44
- // --- 2) 计算相机位置
45
- const fov = (camera.fov * Math.PI) / 180;
46
- const halfFov = fov / 2;
47
- const sinHalfFov = Math.max(Math.sin(halfFov), 0.001);
48
- const distance = (radius * opts.padding) / sinHalfFov;
49
- const dir = new THREE.Vector3(0, Math.sin(opts.elevation), Math.cos(opts.elevation)).normalize();
50
- const desiredPos = center.clone().add(dir.multiplyScalar(distance));
51
- camera.position.copy(desiredPos);
52
- camera.lookAt(center);
53
- camera.near = Math.max(0.001, radius / 1000);
54
- camera.far = Math.max(1000, radius * 50);
55
- camera.updateProjectionMatrix();
56
- // --- 3) 启用阴影
57
- if (opts.renderer && opts.enableShadows) {
58
- opts.renderer.shadowMap.enabled = true;
59
- opts.renderer.shadowMap.type = THREE.PCFSoftShadowMap;
60
- }
61
- // --- 4) 创建灯光组
62
- const lightsGroup = new THREE.Group();
63
- lightsGroup.name = 'autoSetupLightsGroup';
64
- lightsGroup.position.copy(center);
65
- scene.add(lightsGroup);
66
- // 4.1 基础光
67
- const hemi = new THREE.HemisphereLight(0xffffff, 0x444444, 0.6);
68
- hemi.name = 'auto_hemi';
69
- hemi.position.set(0, radius * 2.0, 0);
70
- lightsGroup.add(hemi);
71
- const ambient = new THREE.AmbientLight(0xffffff, 0.25);
72
- ambient.name = 'auto_ambient';
73
- lightsGroup.add(ambient);
74
- // 4.2 方向光
75
- const dirCount = Math.max(1, Math.floor(opts.directionalCount));
76
- const directionalLights = [];
77
- const dirs = [];
78
- dirs.push(new THREE.Vector3(0, 1, 0));
79
- for (let i = 0; i < Math.max(1, dirCount); i++) {
80
- const angle = (i / Math.max(1, dirCount)) * Math.PI * 2;
81
- const v = new THREE.Vector3(Math.cos(angle), 0.3, Math.sin(angle)).normalize();
82
- dirs.push(v);
50
+ if (opts.renderer && opts.enableShadows) {
51
+ opts.renderer.shadowMap.enabled = true;
52
+ opts.renderer.shadowMap.type = THREE.PCFSoftShadowMap;
53
+ }
54
+ const lightsGroup = new THREE.Group();
55
+ lightsGroup.name = 'autoSetupLightsGroup';
56
+ lightsGroup.position.copy(center);
57
+ scene.add(lightsGroup);
58
+ const hemi = new THREE.HemisphereLight(0xffffff, 0x444444, 0.6);
59
+ hemi.position.set(0, radius * 2.0, 0);
60
+ lightsGroup.add(hemi);
61
+ const ambient = new THREE.AmbientLight(0xffffff, 0.25);
62
+ lightsGroup.add(ambient);
63
+ const dirCount = Math.max(1, Math.floor(opts.directionalCount));
64
+ const dirs = [new THREE.Vector3(0, 1, 0)];
65
+ for (let i = 0; i < dirCount; i++) {
66
+ const angle = (i / dirCount) * Math.PI * 2;
67
+ const v = new THREE.Vector3(Math.cos(angle), 0.3, Math.sin(angle)).normalize();
68
+ dirs.push(v);
69
+ }
70
+ const shadowCamSize = Math.max(1, radius * 1.5);
71
+ dirs.forEach((d, i) => {
72
+ const light = new THREE.DirectionalLight(0xffffff, i === 0 ? 1.5 : 1.2);
73
+ light.position.copy(d.clone().multiplyScalar(radius * 2.5));
74
+ light.target.position.copy(center);
75
+ light.name = `auto_dir_${i}`;
76
+ lightsGroup.add(light);
77
+ lightsGroup.add(light.target);
78
+ if (opts.enableShadows) {
79
+ light.castShadow = true;
80
+ light.shadow.mapSize.width = opts.shadowMapSize;
81
+ light.shadow.mapSize.height = opts.shadowMapSize;
82
+ const cam = light.shadow.camera;
83
+ const s = shadowCamSize;
84
+ cam.left = -s;
85
+ cam.right = s;
86
+ cam.top = s;
87
+ cam.bottom = -s;
88
+ cam.near = 0.1;
89
+ cam.far = radius * 10 + 50;
90
+ light.shadow.bias = -5e-4;
83
91
  }
84
- const shadowCamSize = Math.max(1, radius * 1.5);
85
- for (let i = 0; i < dirs.length; i++) {
86
- const d = dirs[i];
87
- const light = new THREE.DirectionalLight(0xffffff, i === 0 ? 1.5 : 1.2);
88
- light.position.copy(d.clone().multiplyScalar(radius * 2.5));
89
- light.target.position.copy(center);
90
- light.name = `auto_dir_${i}`;
91
- lightsGroup.add(light);
92
- lightsGroup.add(light.target);
93
- if (opts.enableShadows) {
94
- light.castShadow = true;
95
- light.shadow.mapSize.width = opts.shadowMapSize;
96
- light.shadow.mapSize.height = opts.shadowMapSize;
97
- const cam = light.shadow.camera;
98
- const s = shadowCamSize;
99
- cam.left = -s;
100
- cam.right = s;
101
- cam.top = s;
102
- cam.bottom = -s;
103
- cam.near = 0.1;
104
- cam.far = radius * 10 + 50;
105
- light.shadow.bias = -0.0005;
92
+ });
93
+ if (opts.setMeshShadowProps) {
94
+ model.traverse((ch) => {
95
+ if (ch.isMesh) {
96
+ const mesh = ch;
97
+ const isSkinned = mesh.isSkinnedMesh;
98
+ mesh.castShadow = opts.enableShadows && !isSkinned ? true : mesh.castShadow;
99
+ mesh.receiveShadow = opts.enableShadows ? true : mesh.receiveShadow;
106
100
  }
107
- directionalLights.push(light);
108
- }
109
- // 4.3 点光补光
110
- const fill1 = new THREE.PointLight(0xffffff, 0.5, radius * 4);
111
- fill1.position.copy(center).add(new THREE.Vector3(radius * 0.5, 0.2 * radius, 0));
112
- fill1.name = 'auto_fill1';
113
- lightsGroup.add(fill1);
114
- const fill2 = new THREE.PointLight(0xffffff, 0.3, radius * 3);
115
- fill2.position.copy(center).add(new THREE.Vector3(-radius * 0.5, -0.2 * radius, 0));
116
- fill2.name = 'auto_fill2';
117
- lightsGroup.add(fill2);
118
- // --- 5) 设置 Mesh 阴影属性
119
- if (opts.setMeshShadowProps) {
120
- model.traverse((ch) => {
121
- if (ch.isMesh) {
122
- const mesh = ch;
123
- const isSkinned = mesh.isSkinnedMesh;
124
- mesh.castShadow = opts.enableShadows && !isSkinned ? true : mesh.castShadow;
125
- mesh.receiveShadow = opts.enableShadows ? true : mesh.receiveShadow;
101
+ });
102
+ }
103
+ const handle = {
104
+ lightsGroup,
105
+ center,
106
+ radius,
107
+ updateLightIntensity(factor) {
108
+ lightsGroup.traverse((node) => {
109
+ if (node.isLight) {
110
+ const light = node;
111
+ light.intensity *= factor; // Simple implementation
126
112
  }
127
113
  });
128
- }
129
- // --- 6) 返回 handle ---
130
- const handle = {
131
- lightsGroup,
132
- center,
133
- radius,
134
- // 新增灯光强度调整
135
- updateLightIntensity(factor) {
136
- lightsGroup.traverse((node) => {
137
- if (node.isLight) {
138
- const light = node;
139
- const originalIntensity = parseFloat(light.name.split('_').pop() || '1');
140
- light.intensity = originalIntensity * Math.max(0, factor);
141
- }
142
- });
143
- },
144
- dispose: () => {
145
- try {
146
- // 移除灯光组
147
- if (lightsGroup.parent)
148
- lightsGroup.parent.remove(lightsGroup);
149
- // 清理阴影资源
150
- lightsGroup.traverse((node) => {
151
- if (node.isLight) {
152
- const l = node;
153
- if (l.shadow && l.shadow.map) {
154
- try {
155
- l.shadow.map.dispose();
156
- }
157
- catch (err) {
158
- console.warn('Failed to dispose shadow map:', err);
159
- }
160
- }
161
- }
162
- });
163
- }
164
- catch (error) {
165
- console.error('autoSetupCameraAndLight: dispose failed', error);
114
+ },
115
+ dispose: () => {
116
+ if (lightsGroup.parent)
117
+ lightsGroup.parent.remove(lightsGroup);
118
+ lightsGroup.traverse((node) => {
119
+ if (node.isLight) {
120
+ const l = node;
121
+ if (l.shadow && l.shadow.map)
122
+ l.shadow.map.dispose();
166
123
  }
167
- }
168
- };
169
- return handle;
170
- }
171
- catch (error) {
172
- console.error('autoSetupCameraAndLight: setup failed', error);
173
- throw error;
174
- }
124
+ });
125
+ }
126
+ };
127
+ return handle;
128
+ }
129
+ /**
130
+ * Automatically setup camera and basic lighting (Combine fitCameraToObject and setupDefaultLights)
131
+ */
132
+ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
133
+ fitCameraToObject(camera, model, options.padding, options.elevation);
134
+ return setupDefaultLights(scene, model, options);
175
135
  }
176
136
 
177
- export { autoSetupCameraAndLight };
137
+ export { autoSetupCameraAndLight, fitCameraToObject, setupDefaultLights };
178
138
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../src/setup/autoSetup.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../src/setup/autoSetup.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,5 +1,16 @@
1
1
  import * as THREE from 'three';
2
2
 
3
+ /**
4
+ * @file modelsLabel.ts
5
+ * @description
6
+ * Creates interactive 2D labels (DOM elements) attached to 3D objects with connecting lines.
7
+ *
8
+ * @best-practice
9
+ * - Use `createModelsLabel` to annotate parts of a model.
10
+ * - Supports fading endpoints, pulsing dots, and custom styling.
11
+ * - Performance optimized with caching and RAF throttling.
12
+ */
13
+
3
14
  interface LabelOptions {
4
15
  fontSize?: string;
5
16
  color?: string;
@@ -22,14 +33,14 @@ interface LabelManager {
22
33
  dispose: () => void;
23
34
  }
24
35
  /**
25
- * 创建模型标签(带连线和脉冲圆点)- 优化版
36
+ * Create Model Labels (with connecting lines and pulsing dots) - Optimized
26
37
  *
27
- * ✨ 优化内容:
28
- * - 支持暂停/恢复更新
29
- * - 可配置更新间隔
30
- * - 淡入淡出效果
31
- * - 缓存包围盒计算
32
- * - RAF 管理优化
38
+ * Features:
39
+ * - Supports pause/resume
40
+ * - Configurable update interval
41
+ * - Fade in/out effects
42
+ * - Cached bounding box calculation
43
+ * - RAF management optimization
33
44
  */
34
45
  declare function createModelsLabel(camera: THREE.Camera, renderer: THREE.WebGLRenderer, parentModel: THREE.Object3D, modelLabelsMap: Record<string, string>, options?: LabelOptions): LabelManager;
35
46
 
package/dist/ui/index.js CHANGED
@@ -22,30 +22,39 @@ function _interopNamespaceDefault(e) {
22
22
  var THREE__namespace = /*#__PURE__*/_interopNamespaceDefault(THREE);
23
23
 
24
24
  /**
25
- * 创建模型标签(带连线和脉冲圆点)- 优化版
25
+ * @file modelsLabel.ts
26
+ * @description
27
+ * Creates interactive 2D labels (DOM elements) attached to 3D objects with connecting lines.
26
28
  *
27
- * ✨ 优化内容:
28
- * - 支持暂停/恢复更新
29
- * - 可配置更新间隔
30
- * - 淡入淡出效果
31
- * - 缓存包围盒计算
32
- * - RAF 管理优化
29
+ * @best-practice
30
+ * - Use `createModelsLabel` to annotate parts of a model.
31
+ * - Supports fading endpoints, pulsing dots, and custom styling.
32
+ * - Performance optimized with caching and RAF throttling.
33
+ */
34
+ /**
35
+ * Create Model Labels (with connecting lines and pulsing dots) - Optimized
36
+ *
37
+ * Features:
38
+ * - Supports pause/resume
39
+ * - Configurable update interval
40
+ * - Fade in/out effects
41
+ * - Cached bounding box calculation
42
+ * - RAF management optimization
33
43
  */
34
44
  function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, options) {
35
- var _a, _b, _c, _d, _e, _f;
36
45
  const cfg = {
37
- fontSize: (options === null || options === void 0 ? void 0 : options.fontSize) || '12px',
38
- color: (options === null || options === void 0 ? void 0 : options.color) || '#ffffff',
39
- background: (options === null || options === void 0 ? void 0 : options.background) || '#1890ff',
40
- padding: (options === null || options === void 0 ? void 0 : options.padding) || '6px 10px',
41
- borderRadius: (options === null || options === void 0 ? void 0 : options.borderRadius) || '6px',
42
- lift: (_a = options === null || options === void 0 ? void 0 : options.lift) !== null && _a !== void 0 ? _a : 100,
43
- dotSize: (_b = options === null || options === void 0 ? void 0 : options.dotSize) !== null && _b !== void 0 ? _b : 6,
44
- dotSpacing: (_c = options === null || options === void 0 ? void 0 : options.dotSpacing) !== null && _c !== void 0 ? _c : 2,
45
- lineColor: (options === null || options === void 0 ? void 0 : options.lineColor) || 'rgba(200,200,200,0.7)',
46
- lineWidth: (_d = options === null || options === void 0 ? void 0 : options.lineWidth) !== null && _d !== void 0 ? _d : 1,
47
- updateInterval: (_e = options === null || options === void 0 ? void 0 : options.updateInterval) !== null && _e !== void 0 ? _e : 0, // ✨ 默认每帧更新
48
- fadeInDuration: (_f = options === null || options === void 0 ? void 0 : options.fadeInDuration) !== null && _f !== void 0 ? _f : 300, // 淡入时长
46
+ fontSize: options?.fontSize || '12px',
47
+ color: options?.color || '#ffffff',
48
+ background: options?.background || '#1890ff',
49
+ padding: options?.padding || '6px 10px',
50
+ borderRadius: options?.borderRadius || '6px',
51
+ lift: options?.lift ?? 100,
52
+ dotSize: options?.dotSize ?? 6,
53
+ dotSpacing: options?.dotSpacing ?? 2,
54
+ lineColor: options?.lineColor || 'rgba(200,200,200,0.7)',
55
+ lineWidth: options?.lineWidth ?? 1,
56
+ updateInterval: options?.updateInterval ?? 0, // Default update every frame
57
+ fadeInDuration: options?.fadeInDuration ?? 300, // Fade-in duration
49
58
  };
50
59
  const container = document.createElement('div');
51
60
  container.style.position = 'absolute';
@@ -68,13 +77,13 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
68
77
  svg.style.zIndex = '1';
69
78
  container.appendChild(svg);
70
79
  let currentModel = parentModel;
71
- let currentLabelsMap = Object.assign({}, modelLabelsMap);
80
+ let currentLabelsMap = { ...modelLabelsMap };
72
81
  let labels = [];
73
82
  let isActive = true;
74
- let isPaused = false; // ✨ 暂停状态
75
- let rafId = null; // ✨ RAF ID
76
- let lastUpdateTime = 0; // ✨ 上次更新时间
77
- // 注入样式(带淡入动画)
83
+ let isPaused = false;
84
+ let rafId = null;
85
+ let lastUpdateTime = 0;
86
+ // Inject styles (with fade-in animation)
78
87
  const styleId = 'three-model-label-styles';
79
88
  if (!document.getElementById(styleId)) {
80
89
  const style = document.createElement('style');
@@ -113,14 +122,14 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
113
122
  `;
114
123
  document.head.appendChild(style);
115
124
  }
116
- // 获取或更新缓存的顶部位置
125
+ // Get or update cached top position
117
126
  const getObjectTopPosition = (labelData) => {
118
127
  const obj = labelData.object;
119
- // 如果有缓存且对象没有变换,直接返回
128
+ // If cached and object hasn't transformed, return cached
120
129
  if (labelData.cachedTopPos && !obj.matrixWorldNeedsUpdate) {
121
130
  return labelData.cachedTopPos.clone();
122
131
  }
123
- // 重新计算
132
+ // Recalculate
124
133
  const box = new THREE__namespace.Box3().setFromObject(obj);
125
134
  labelData.cachedBox = box;
126
135
  if (!box.isEmpty()) {
@@ -149,9 +158,8 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
149
158
  if (!currentModel)
150
159
  return;
151
160
  currentModel.traverse((child) => {
152
- var _a;
153
161
  if (child.isMesh || child.type === 'Group') {
154
- const labelText = (_a = Object.entries(currentLabelsMap).find(([key]) => child.name.includes(key))) === null || _a === void 0 ? void 0 : _a[1];
162
+ const labelText = Object.entries(currentLabelsMap).find(([key]) => child.name.includes(key))?.[1];
155
163
  if (!labelText)
156
164
  return;
157
165
  const wrapper = document.createElement('div');
@@ -198,20 +206,20 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
198
206
  wrapper,
199
207
  dot,
200
208
  line,
201
- cachedBox: null, // 初始化缓存
209
+ cachedBox: null, // Initialize cache
202
210
  cachedTopPos: null
203
211
  });
204
212
  }
205
213
  });
206
214
  };
207
215
  rebuildLabels();
208
- // 优化的更新函数
216
+ // Optimized update function
209
217
  const updateLabels = (timestamp) => {
210
218
  if (!isActive || isPaused) {
211
219
  rafId = null;
212
220
  return;
213
221
  }
214
- // ✨ 节流处理
222
+ // Throttle
215
223
  if (cfg.updateInterval > 0 && timestamp - lastUpdateTime < cfg.updateInterval) {
216
224
  rafId = requestAnimationFrame(updateLabels);
217
225
  return;
@@ -224,7 +232,7 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
224
232
  svg.setAttribute('height', `${height}`);
225
233
  labels.forEach((labelData) => {
226
234
  const { el, wrapper, dot, line } = labelData;
227
- const topWorld = getObjectTopPosition(labelData); // 使用缓存
235
+ const topWorld = getObjectTopPosition(labelData); // Use cache
228
236
  const topNDC = topWorld.clone().project(camera);
229
237
  const modelX = (topNDC.x * 0.5 + 0.5) * width + rect.left;
230
238
  const modelY = (-(topNDC.y * 0.5) + 0.5) * height + rect.top;
@@ -256,10 +264,10 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
256
264
  rebuildLabels();
257
265
  },
258
266
  updateLabelsMap(newMap) {
259
- currentLabelsMap = Object.assign({}, newMap);
267
+ currentLabelsMap = { ...newMap };
260
268
  rebuildLabels();
261
269
  },
262
- // 暂停更新
270
+ // Pause update
263
271
  pause() {
264
272
  isPaused = true;
265
273
  if (rafId !== null) {
@@ -267,7 +275,7 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
267
275
  rafId = null;
268
276
  }
269
277
  },
270
- // 恢复更新
278
+ // Resume update
271
279
  resume() {
272
280
  if (!isPaused)
273
281
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/ui/modelsLabel.ts"],"sourcesContent":[null],"names":["THREE"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAyBA;;;;;;;;;AASG;AACG,SAAU,iBAAiB,CAC/B,MAAoB,EACpB,QAA6B,EAC7B,WAA2B,EAC3B,cAAsC,EACtC,OAAsB,EAAA;;AAEtB,IAAA,MAAM,GAAG,GAAG;QACV,QAAQ,EAAE,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,KAAI,MAAM;QACrC,KAAK,EAAE,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,KAAK,KAAI,SAAS;QAClC,UAAU,EAAE,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,KAAI,SAAS;QAC5C,OAAO,EAAE,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,KAAI,UAAU;QACvC,YAAY,EAAE,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,KAAI,KAAK;QAC5C,IAAI,EAAE,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG;QAC1B,OAAO,EAAE,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC;QAC9B,UAAU,EAAE,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC;QACpC,SAAS,EAAE,CAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,KAAI,uBAAuB;QACxD,SAAS,EAAE,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC;AAClC,QAAA,cAAc,EAAE,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,CAAC;AAC5C,QAAA,cAAc,EAAE,CAAA,EAAA,GAAA,OAAO,KAAA,IAAA,IAAP,OAAO,KAAA,MAAA,GAAA,MAAA,GAAP,OAAO,CAAE,cAAc,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,GAAG;KAC/C;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC/C,IAAA,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACrC,IAAA,SAAS,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG;AACzB,IAAA,SAAS,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG;AAC1B,IAAA,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM;AAC9B,IAAA,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM;AAC/B,IAAA,SAAS,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM;AACtC,IAAA,SAAS,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS;AACpC,IAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;IAEpC,MAAM,KAAK,GAAG,4BAA4B;IAC1C,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC;AAClD,IAAA,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC;AACjC,IAAA,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC;AAClC,IAAA,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AAC/B,IAAA,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG;AACnB,IAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG;AACpB,IAAA,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS;AAC9B,IAAA,GAAG,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM;AAChC,IAAA,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;AACtB,IAAA,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC;IAE1B,IAAI,YAAY,GAAG,WAAW;AAC9B,IAAA,IAAI,gBAAgB,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,cAAc,CAAE;IAa5C,IAAI,MAAM,GAAgB,EAAE;IAC5B,IAAI,QAAQ,GAAG,IAAI;AACnB,IAAA,IAAI,QAAQ,GAAG,KAAK,CAAC;AACrB,IAAA,IAAI,KAAK,GAAkB,IAAI,CAAC;AAChC,IAAA,IAAI,cAAc,GAAG,CAAC,CAAC;;IAGvB,MAAM,OAAO,GAAG,0BAA0B;IAC1C,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,QAAA,KAAK,CAAC,EAAE,GAAG,OAAO;QAClB,KAAK,CAAC,SAAS,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;AAqBa,iCAAA,EAAA,GAAG,CAAC,cAAc,CAAA;;;;;;;;;;KAUhD;AACD,QAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;IAClC;;AAGA,IAAA,MAAM,oBAAoB,GAAG,CAAC,SAAoB,KAAmB;AACnE,QAAA,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM;;QAG5B,IAAI,SAAS,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE;AACzD,YAAA,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE;QACvC;;AAGA,QAAA,MAAM,GAAG,GAAG,IAAIA,gBAAK,CAAC,IAAI,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC;AAC/C,QAAA,SAAS,CAAC,SAAS,GAAG,GAAG;AAEzB,QAAA,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE;AAClB,YAAA,MAAM,MAAM,GAAG,IAAIA,gBAAK,CAAC,OAAO,EAAE;AAClC,YAAA,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC;YACrB,MAAM,MAAM,GAAG,IAAIA,gBAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;AAC/D,YAAA,SAAS,CAAC,YAAY,GAAG,MAAM;AAC/B,YAAA,OAAO,MAAM,CAAC,KAAK,EAAE;QACvB;AAEA,QAAA,MAAM,CAAC,GAAG,IAAIA,gBAAK,CAAC,OAAO,EAAE;AAC7B,QAAA,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACvB,QAAA,SAAS,CAAC,YAAY,GAAG,CAAC;AAC1B,QAAA,OAAO,CAAC,CAAC,KAAK,EAAE;AAClB,IAAA,CAAC;IAED,MAAM,WAAW,GAAG,MAAK;AACvB,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAI;YACvC,EAAE,CAAC,MAAM,EAAE;YACX,OAAO,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU;AAAE,gBAAA,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;AAChE,QAAA,CAAC,CAAC;QACF,MAAM,GAAG,EAAE;AACb,IAAA,CAAC;IAED,MAAM,aAAa,GAAG,MAAK;AACzB,QAAA,WAAW,EAAE;AACb,QAAA,IAAI,CAAC,YAAY;YAAE;AAEnB,QAAA,YAAY,CAAC,QAAQ,CAAC,CAAC,KAAU,KAAI;;YACnC,IAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE;AAC1C,gBAAA,MAAM,SAAS,GAAG,CAAA,EAAA,GAAA,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,KAC5D,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CACzB,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAG,CAAC,CAAC;AACN,gBAAA,IAAI,CAAC,SAAS;oBAAE;gBAEhB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AAC7C,gBAAA,OAAO,CAAC,SAAS,GAAG,kBAAkB;AACtC,gBAAA,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;AACnC,gBAAA,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM;AACpC,gBAAA,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,wBAAwB;AAClD,gBAAA,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG;gBAE1B,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACxC,gBAAA,EAAE,CAAC,SAAS,GAAG,UAAU;gBACzB,EAAE,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU;gBACpC,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK;gBAC1B,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO;gBAC9B,EAAE,CAAC,KAAK,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY;gBACxC,EAAE,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ;AAChC,gBAAA,EAAE,CAAC,KAAK,CAAC,SAAS,GAAG,6BAA6B;AAClD,gBAAA,EAAE,CAAC,KAAK,CAAC,cAAc,GAAG,WAAW;AACrC,gBAAA,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,kCAAkC;AACpD,gBAAA,EAAE,CAAC,KAAK,CAAC,OAAO,GAAG,cAAc;gBAEjC,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,gBAAA,GAAG,CAAC,SAAS,GAAG,eAAe;AAC/B,gBAAA,GAAG,CAAC,SAAS,GAAG,SAAS;AACzB,gBAAA,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC;gBAEnB,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,gBAAA,GAAG,CAAC,SAAS,GAAG,cAAc;gBAC9B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,OAAO,CAAA,EAAA,CAAI;gBACpC,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAA,EAAA,CAAI;AACrC,gBAAA,GAAG,CAAC,KAAK,CAAC,UAAU,GAAG,yHAAyH;AAChJ,gBAAA,GAAG,CAAC,KAAK,CAAC,SAAS,GAAG,6BAA6B;AACnD,gBAAA,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU;gBAC3B,GAAG,CAAC,KAAK,CAAC,WAAW,GAAG,GAAG,GAAG,CAAC,UAAU,CAAA,EAAA,CAAI;AAE7C,gBAAA,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC;AACxB,gBAAA,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;AACvB,gBAAA,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC;gBAE9B,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC;gBACpD,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC;gBAC1C,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAA,EAAG,GAAG,CAAC,SAAS,CAAA,CAAE,CAAC;AACrD,gBAAA,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC;AAC5C,gBAAA,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC;AACpC,gBAAA,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC;gBAErB,MAAM,CAAC,IAAI,CAAC;AACV,oBAAA,MAAM,EAAE,KAAK;oBACb,EAAE;oBACF,OAAO;oBACP,GAAG;oBACH,IAAI;oBACJ,SAAS,EAAE,IAAI;AACf,oBAAA,YAAY,EAAE;AACf,iBAAA,CAAC;YACJ;AACF,QAAA,CAAC,CAAC;AACJ,IAAA,CAAC;AAED,IAAA,aAAa,EAAE;;AAGf,IAAA,MAAM,YAAY,GAAG,CAAC,SAAiB,KAAI;AACzC,QAAA,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;YACzB,KAAK,GAAG,IAAI;YACZ;QACF;;AAGA,QAAA,IAAI,GAAG,CAAC,cAAc,GAAG,CAAC,IAAI,SAAS,GAAG,cAAc,GAAG,GAAG,CAAC,cAAc,EAAE;AAC7E,YAAA,KAAK,GAAG,qBAAqB,CAAC,YAAY,CAAC;YAC3C;QACF;QACA,cAAc,GAAG,SAAS;QAE1B,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,qBAAqB,EAAE;AACxD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;QAE1B,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,CAAA,EAAG,KAAK,CAAA,CAAE,CAAC;QACrC,GAAG,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAA,EAAG,MAAM,CAAA,CAAE,CAAC;AAEvC,QAAA,MAAM,CAAC,OAAO,CAAC,CAAC,SAAS,KAAI;YAC3B,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,SAAS;YAC5C,MAAM,QAAQ,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAC;YACjD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC;AAE/C,YAAA,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI;YACzD,MAAM,MAAM,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG;YAE5D,MAAM,MAAM,GAAG,MAAM;AACrB,YAAA,MAAM,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,IAAI;YAEhC,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAA,EAAG,MAAM,IAAI;YAClC,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA,EAAG,MAAM,IAAI;AAEjC,YAAA,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI;AACpC,YAAA,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG;AACnC,YAAA,MAAM,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC,IAAI;AACpC,YAAA,MAAM,SAAS,GACb,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC;YAE/D,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,CAAE,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,CAAE,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,CAAE,CAAC;YACvC,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAA,EAAG,SAAS,CAAA,CAAE,CAAC;AAEvC,YAAA,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC;AAC5B,YAAA,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM;AACjD,YAAA,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC/D,YAAA,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,GAAG,GAAG,GAAG,GAAG;AACzC,QAAA,CAAC,CAAC;AAEF,QAAA,KAAK,GAAG,qBAAqB,CAAC,YAAY,CAAC;AAC7C,IAAA,CAAC;AAED,IAAA,KAAK,GAAG,qBAAqB,CAAC,YAAY,CAAC;IAE3C,OAAO;AACL,QAAA,WAAW,CAAC,QAAwB,EAAA;AAClC,YAAA,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,YAAY;gBAAE;YAC5C,YAAY,GAAG,QAAQ;AACvB,YAAA,aAAa,EAAE;QACjB,CAAC;AACD,QAAA,eAAe,CAAC,MAA8B,EAAA;YAC5C,gBAAgB,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAQ,MAAM,CAAE;AAChC,YAAA,aAAa,EAAE;QACjB,CAAC;;QAED,KAAK,GAAA;YACH,QAAQ,GAAG,IAAI;AACf,YAAA,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,oBAAoB,CAAC,KAAK,CAAC;gBAC3B,KAAK,GAAG,IAAI;YACd;QACF,CAAC;;QAED,MAAM,GAAA;AACJ,YAAA,IAAI,CAAC,QAAQ;gBAAE;YACf,QAAQ,GAAG,KAAK;AAChB,YAAA,KAAK,GAAG,qBAAqB,CAAC,YAAY,CAAC;QAC7C,CAAC;QACD,OAAO,GAAA;YACL,QAAQ,GAAG,KAAK;YAChB,QAAQ,GAAG,IAAI;AACf,YAAA,IAAI,KAAK,KAAK,IAAI,EAAE;gBAClB,oBAAoB,CAAC,KAAK,CAAC;gBAC3B,KAAK,GAAG,IAAI;YACd;AACA,YAAA,WAAW,EAAE;YACb,GAAG,CAAC,MAAM,EAAE;YACZ,SAAS,CAAC,MAAM,EAAE;QACpB,CAAC;KACF;AACH;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../src/ui/modelsLabel.ts"],"sourcesContent":[null],"names":["THREE"],"mappings":"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"}