@chocozhang/three-model-render 1.0.2 → 1.0.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 (42) hide show
  1. package/README.md +149 -530
  2. package/dist/camera/index.d.ts +59 -36
  3. package/dist/camera/index.js +77 -57
  4. package/dist/camera/index.js.map +1 -1
  5. package/dist/camera/index.mjs +77 -57
  6. package/dist/camera/index.mjs.map +1 -1
  7. package/dist/core/index.d.ts +60 -27
  8. package/dist/core/index.js +124 -95
  9. package/dist/core/index.js.map +1 -1
  10. package/dist/core/index.mjs +124 -95
  11. package/dist/core/index.mjs.map +1 -1
  12. package/dist/effect/index.d.ts +47 -134
  13. package/dist/effect/index.js +109 -65
  14. package/dist/effect/index.js.map +1 -1
  15. package/dist/effect/index.mjs +109 -65
  16. package/dist/effect/index.mjs.map +1 -1
  17. package/dist/index.d.ts +397 -341
  18. package/dist/index.js +651 -472
  19. package/dist/index.js.map +1 -1
  20. package/dist/index.mjs +651 -472
  21. package/dist/index.mjs.map +1 -1
  22. package/dist/interaction/index.d.ts +85 -52
  23. package/dist/interaction/index.js +161 -133
  24. package/dist/interaction/index.js.map +1 -1
  25. package/dist/interaction/index.mjs +161 -133
  26. package/dist/interaction/index.mjs.map +1 -1
  27. package/dist/loader/index.d.ts +89 -56
  28. package/dist/loader/index.js +115 -76
  29. package/dist/loader/index.js.map +1 -1
  30. package/dist/loader/index.mjs +115 -76
  31. package/dist/loader/index.mjs.map +1 -1
  32. package/dist/setup/index.d.ts +28 -18
  33. package/dist/setup/index.js +33 -24
  34. package/dist/setup/index.js.map +1 -1
  35. package/dist/setup/index.mjs +33 -24
  36. package/dist/setup/index.mjs.map +1 -1
  37. package/dist/ui/index.d.ts +18 -7
  38. package/dist/ui/index.js +32 -22
  39. package/dist/ui/index.js.map +1 -1
  40. package/dist/ui/index.mjs +32 -22
  41. package/dist/ui/index.mjs.map +1 -1
  42. package/package.json +1 -1
@@ -1,23 +1,33 @@
1
1
  import * as THREE from 'three';
2
2
 
3
+ /**
4
+ * @file autoSetup.ts
5
+ * @description
6
+ * Automatically sets up the camera and basic lighting scene based on the model's bounding box.
7
+ *
8
+ * @best-practice
9
+ * - Call `autoSetupCameraAndLight` after loading a model to get a quick "good looking" scene.
10
+ * - Returns a handle to dispose lights or update intensity later.
11
+ */
12
+
3
13
  interface AutoSetupOptions {
4
- /** 相机在包围球基础上的额外填充倍数(>1 扩大可视范围) */
14
+ /** Extra padding multiplier based on bounding sphere (>1 expands view range) */
5
15
  padding?: number;
6
- /** 相机仰角偏移(弧度),默认小俯视(0.2 rad ≈ 11°) */
16
+ /** Camera elevation offset (radians), default slight top-down (0.2 rad ≈ 11°) */
7
17
  elevation?: number;
8
- /** 是否启用阴影(shadow) - 性能开销大,默认 false */
18
+ /** Whether to enable shadows - high performance cost, default false */
9
19
  enableShadows?: boolean;
10
- /** 阴影贴图尺寸,越高越清晰越耗性能,默认 1024 */
20
+ /** Shadow map size, higher is clearer but more expensive, default 1024 */
11
21
  shadowMapSize?: number;
12
- /** DirectionalLights 的数量(均匀分布在四面) */
22
+ /** Number of DirectionalLights (evenly distributed around) */
13
23
  directionalCount?: number;
14
- /** 是否自动把 mesh.castShadow / mesh.receiveShadow 设置为 true(默认 true */
24
+ /** Whether to automatically set mesh.castShadow / mesh.receiveShadow to true (default true) */
15
25
  setMeshShadowProps?: boolean;
16
- /** 如果传入 renderer,则工具会自动启用 renderer.shadowMap(如果 enableShadows true */
26
+ /** If renderer is passed, the tool will automatically enable renderer.shadowMap (if enableShadows is true) */
17
27
  renderer?: THREE.WebGLRenderer | null;
18
28
  }
19
29
  /**
20
- * 返回值句柄,包含 created lights groupcomputed center/radius、以及 dispose 方法
30
+ * Return handle, containing created lights group, computed center/radius, and dispose method
21
31
  */
22
32
  type AutoSetupHandle = {
23
33
  lightsGroup: THREE.Group;
@@ -27,19 +37,19 @@ type AutoSetupHandle = {
27
37
  updateLightIntensity: (factor: number) => void;
28
38
  };
29
39
  /**
30
- * 自动设置相机与基础灯光 - 优化版
40
+ * Automatically setup camera and basic lighting - Optimized
31
41
  *
32
- * ✨ 优化内容:
33
- * - 添加灯光强度调整方法
34
- * - 完善错误处理
35
- * - 优化dispose逻辑
42
+ * Features:
43
+ * - Adds light intensity adjustment method
44
+ * - Improved error handling
45
+ * - Optimized dispose logic
36
46
  *
37
- * - camera: THREE.PerspectiveCamera(会被移动并指向模型中心)
38
- * - scene: THREE.Scene(会把新创建的 light group 加入 scene
39
- * - model: THREE.Object3D 已加载的模型(任意 transform/坐标)
40
- * - options: 可选配置(见 AutoSetupOptions
47
+ * - camera: THREE.PerspectiveCamera (will be moved and pointed at model center)
48
+ * - scene: THREE.Scene (newly created light group will be added to the scene)
49
+ * - model: THREE.Object3D loaded model (arbitrary transform/coordinates)
50
+ * - options: Optional configuration (see AutoSetupOptions)
41
51
  *
42
- * 返回 AutoSetupHandle,调用方在组件卸载/切换时请调用 handle.dispose()
52
+ * Returns AutoSetupHandle, caller should call handle.dispose() when component unmounts/switches
43
53
  */
44
54
  declare function autoSetupCameraAndLight(camera: THREE.PerspectiveCamera, scene: THREE.Scene, model: THREE.Object3D, options?: AutoSetupOptions): AutoSetupHandle;
45
55
 
@@ -22,23 +22,32 @@ function _interopNamespaceDefault(e) {
22
22
  var THREE__namespace = /*#__PURE__*/_interopNamespaceDefault(THREE);
23
23
 
24
24
  /**
25
- * 自动设置相机与基础灯光 - 优化版
25
+ * @file autoSetup.ts
26
+ * @description
27
+ * Automatically sets up the camera and basic lighting scene based on the model's bounding box.
26
28
  *
27
- * ✨ 优化内容:
28
- * - 添加灯光强度调整方法
29
- * - 完善错误处理
30
- * - 优化dispose逻辑
29
+ * @best-practice
30
+ * - Call `autoSetupCameraAndLight` after loading a model to get a quick "good looking" scene.
31
+ * - Returns a handle to dispose lights or update intensity later.
32
+ */
33
+ /**
34
+ * Automatically setup camera and basic lighting - Optimized
35
+ *
36
+ * Features:
37
+ * - Adds light intensity adjustment method
38
+ * - Improved error handling
39
+ * - Optimized dispose logic
31
40
  *
32
- * - camera: THREE.PerspectiveCamera(会被移动并指向模型中心)
33
- * - scene: THREE.Scene(会把新创建的 light group 加入 scene
34
- * - model: THREE.Object3D 已加载的模型(任意 transform/坐标)
35
- * - options: 可选配置(见 AutoSetupOptions
41
+ * - camera: THREE.PerspectiveCamera (will be moved and pointed at model center)
42
+ * - scene: THREE.Scene (newly created light group will be added to the scene)
43
+ * - model: THREE.Object3D loaded model (arbitrary transform/coordinates)
44
+ * - options: Optional configuration (see AutoSetupOptions)
36
45
  *
37
- * 返回 AutoSetupHandle,调用方在组件卸载/切换时请调用 handle.dispose()
46
+ * Returns AutoSetupHandle, caller should call handle.dispose() when component unmounts/switches
38
47
  */
39
48
  function autoSetupCameraAndLight(camera, scene, model, options = {}) {
40
49
  var _a, _b, _c, _d, _e, _f, _g;
41
- // 边界检查
50
+ // Boundary check
42
51
  if (!camera || !scene || !model) {
43
52
  throw new Error('autoSetupCameraAndLight: camera, scene, model are required');
44
53
  }
@@ -52,9 +61,9 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
52
61
  renderer: (_g = options.renderer) !== null && _g !== void 0 ? _g : null,
53
62
  };
54
63
  try {
55
- // --- 1) 计算包围数据
64
+ // --- 1) Calculate bounding data
56
65
  const box = new THREE__namespace.Box3().setFromObject(model);
57
- // 检查包围盒有效性
66
+ // Check bounding box validity
58
67
  if (!isFinite(box.min.x)) {
59
68
  throw new Error('autoSetupCameraAndLight: Invalid bounding box');
60
69
  }
@@ -62,7 +71,7 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
62
71
  box.getBoundingSphere(sphere);
63
72
  const center = sphere.center.clone();
64
73
  const radius = Math.max(0.001, sphere.radius);
65
- // --- 2) 计算相机位置
74
+ // --- 2) Calculate camera position
66
75
  const fov = (camera.fov * Math.PI) / 180;
67
76
  const halfFov = fov / 2;
68
77
  const sinHalfFov = Math.max(Math.sin(halfFov), 0.001);
@@ -74,17 +83,17 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
74
83
  camera.near = Math.max(0.001, radius / 1000);
75
84
  camera.far = Math.max(1000, radius * 50);
76
85
  camera.updateProjectionMatrix();
77
- // --- 3) 启用阴影
86
+ // --- 3) Enable Shadows
78
87
  if (opts.renderer && opts.enableShadows) {
79
88
  opts.renderer.shadowMap.enabled = true;
80
89
  opts.renderer.shadowMap.type = THREE__namespace.PCFSoftShadowMap;
81
90
  }
82
- // --- 4) 创建灯光组
91
+ // --- 4) Create Lights Group
83
92
  const lightsGroup = new THREE__namespace.Group();
84
93
  lightsGroup.name = 'autoSetupLightsGroup';
85
94
  lightsGroup.position.copy(center);
86
95
  scene.add(lightsGroup);
87
- // 4.1 基础光
96
+ // 4.1 Basic Light
88
97
  const hemi = new THREE__namespace.HemisphereLight(0xffffff, 0x444444, 0.6);
89
98
  hemi.name = 'auto_hemi';
90
99
  hemi.position.set(0, radius * 2.0, 0);
@@ -92,7 +101,7 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
92
101
  const ambient = new THREE__namespace.AmbientLight(0xffffff, 0.25);
93
102
  ambient.name = 'auto_ambient';
94
103
  lightsGroup.add(ambient);
95
- // 4.2 方向光
104
+ // 4.2 Directional Lights
96
105
  const dirCount = Math.max(1, Math.floor(opts.directionalCount));
97
106
  const directionalLights = [];
98
107
  const dirs = [];
@@ -127,7 +136,7 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
127
136
  }
128
137
  directionalLights.push(light);
129
138
  }
130
- // 4.3 点光补光
139
+ // 4.3 Point Light Fill
131
140
  const fill1 = new THREE__namespace.PointLight(0xffffff, 0.5, radius * 4);
132
141
  fill1.position.copy(center).add(new THREE__namespace.Vector3(radius * 0.5, 0.2 * radius, 0));
133
142
  fill1.name = 'auto_fill1';
@@ -136,7 +145,7 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
136
145
  fill2.position.copy(center).add(new THREE__namespace.Vector3(-radius * 0.5, -0.2 * radius, 0));
137
146
  fill2.name = 'auto_fill2';
138
147
  lightsGroup.add(fill2);
139
- // --- 5) 设置 Mesh 阴影属性
148
+ // --- 5) Set Mesh Shadow Props
140
149
  if (opts.setMeshShadowProps) {
141
150
  model.traverse((ch) => {
142
151
  if (ch.isMesh) {
@@ -147,12 +156,12 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
147
156
  }
148
157
  });
149
158
  }
150
- // --- 6) 返回 handle ---
159
+ // --- 6) Return handle ---
151
160
  const handle = {
152
161
  lightsGroup,
153
162
  center,
154
163
  radius,
155
- // 新增灯光强度调整
164
+ // Update light intensity
156
165
  updateLightIntensity(factor) {
157
166
  lightsGroup.traverse((node) => {
158
167
  if (node.isLight) {
@@ -164,10 +173,10 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
164
173
  },
165
174
  dispose: () => {
166
175
  try {
167
- // 移除灯光组
176
+ // Remove lights group
168
177
  if (lightsGroup.parent)
169
178
  lightsGroup.parent.remove(lightsGroup);
170
- // 清理阴影资源
179
+ // Dispose shadow resources
171
180
  lightsGroup.traverse((node) => {
172
181
  if (node.isLight) {
173
182
  const l = node;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/setup/autoSetup.ts"],"sourcesContent":[null],"names":["THREE"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/setup/autoSetup.ts"],"sourcesContent":[null],"names":["THREE"],"mappings":"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"}
@@ -1,23 +1,32 @@
1
1
  import * as THREE from 'three';
2
2
 
3
3
  /**
4
- * 自动设置相机与基础灯光 - 优化版
4
+ * @file autoSetup.ts
5
+ * @description
6
+ * Automatically sets up the camera and basic lighting scene based on the model's bounding box.
5
7
  *
6
- * ✨ 优化内容:
7
- * - 添加灯光强度调整方法
8
- * - 完善错误处理
9
- * - 优化dispose逻辑
8
+ * @best-practice
9
+ * - Call `autoSetupCameraAndLight` after loading a model to get a quick "good looking" scene.
10
+ * - Returns a handle to dispose lights or update intensity later.
11
+ */
12
+ /**
13
+ * Automatically setup camera and basic lighting - Optimized
14
+ *
15
+ * Features:
16
+ * - Adds light intensity adjustment method
17
+ * - Improved error handling
18
+ * - Optimized dispose logic
10
19
  *
11
- * - camera: THREE.PerspectiveCamera(会被移动并指向模型中心)
12
- * - scene: THREE.Scene(会把新创建的 light group 加入 scene
13
- * - model: THREE.Object3D 已加载的模型(任意 transform/坐标)
14
- * - options: 可选配置(见 AutoSetupOptions
20
+ * - camera: THREE.PerspectiveCamera (will be moved and pointed at model center)
21
+ * - scene: THREE.Scene (newly created light group will be added to the scene)
22
+ * - model: THREE.Object3D loaded model (arbitrary transform/coordinates)
23
+ * - options: Optional configuration (see AutoSetupOptions)
15
24
  *
16
- * 返回 AutoSetupHandle,调用方在组件卸载/切换时请调用 handle.dispose()
25
+ * Returns AutoSetupHandle, caller should call handle.dispose() when component unmounts/switches
17
26
  */
18
27
  function autoSetupCameraAndLight(camera, scene, model, options = {}) {
19
28
  var _a, _b, _c, _d, _e, _f, _g;
20
- // 边界检查
29
+ // Boundary check
21
30
  if (!camera || !scene || !model) {
22
31
  throw new Error('autoSetupCameraAndLight: camera, scene, model are required');
23
32
  }
@@ -31,9 +40,9 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
31
40
  renderer: (_g = options.renderer) !== null && _g !== void 0 ? _g : null,
32
41
  };
33
42
  try {
34
- // --- 1) 计算包围数据
43
+ // --- 1) Calculate bounding data
35
44
  const box = new THREE.Box3().setFromObject(model);
36
- // 检查包围盒有效性
45
+ // Check bounding box validity
37
46
  if (!isFinite(box.min.x)) {
38
47
  throw new Error('autoSetupCameraAndLight: Invalid bounding box');
39
48
  }
@@ -41,7 +50,7 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
41
50
  box.getBoundingSphere(sphere);
42
51
  const center = sphere.center.clone();
43
52
  const radius = Math.max(0.001, sphere.radius);
44
- // --- 2) 计算相机位置
53
+ // --- 2) Calculate camera position
45
54
  const fov = (camera.fov * Math.PI) / 180;
46
55
  const halfFov = fov / 2;
47
56
  const sinHalfFov = Math.max(Math.sin(halfFov), 0.001);
@@ -53,17 +62,17 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
53
62
  camera.near = Math.max(0.001, radius / 1000);
54
63
  camera.far = Math.max(1000, radius * 50);
55
64
  camera.updateProjectionMatrix();
56
- // --- 3) 启用阴影
65
+ // --- 3) Enable Shadows
57
66
  if (opts.renderer && opts.enableShadows) {
58
67
  opts.renderer.shadowMap.enabled = true;
59
68
  opts.renderer.shadowMap.type = THREE.PCFSoftShadowMap;
60
69
  }
61
- // --- 4) 创建灯光组
70
+ // --- 4) Create Lights Group
62
71
  const lightsGroup = new THREE.Group();
63
72
  lightsGroup.name = 'autoSetupLightsGroup';
64
73
  lightsGroup.position.copy(center);
65
74
  scene.add(lightsGroup);
66
- // 4.1 基础光
75
+ // 4.1 Basic Light
67
76
  const hemi = new THREE.HemisphereLight(0xffffff, 0x444444, 0.6);
68
77
  hemi.name = 'auto_hemi';
69
78
  hemi.position.set(0, radius * 2.0, 0);
@@ -71,7 +80,7 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
71
80
  const ambient = new THREE.AmbientLight(0xffffff, 0.25);
72
81
  ambient.name = 'auto_ambient';
73
82
  lightsGroup.add(ambient);
74
- // 4.2 方向光
83
+ // 4.2 Directional Lights
75
84
  const dirCount = Math.max(1, Math.floor(opts.directionalCount));
76
85
  const directionalLights = [];
77
86
  const dirs = [];
@@ -106,7 +115,7 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
106
115
  }
107
116
  directionalLights.push(light);
108
117
  }
109
- // 4.3 点光补光
118
+ // 4.3 Point Light Fill
110
119
  const fill1 = new THREE.PointLight(0xffffff, 0.5, radius * 4);
111
120
  fill1.position.copy(center).add(new THREE.Vector3(radius * 0.5, 0.2 * radius, 0));
112
121
  fill1.name = 'auto_fill1';
@@ -115,7 +124,7 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
115
124
  fill2.position.copy(center).add(new THREE.Vector3(-radius * 0.5, -0.2 * radius, 0));
116
125
  fill2.name = 'auto_fill2';
117
126
  lightsGroup.add(fill2);
118
- // --- 5) 设置 Mesh 阴影属性
127
+ // --- 5) Set Mesh Shadow Props
119
128
  if (opts.setMeshShadowProps) {
120
129
  model.traverse((ch) => {
121
130
  if (ch.isMesh) {
@@ -126,12 +135,12 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
126
135
  }
127
136
  });
128
137
  }
129
- // --- 6) 返回 handle ---
138
+ // --- 6) Return handle ---
130
139
  const handle = {
131
140
  lightsGroup,
132
141
  center,
133
142
  radius,
134
- // 新增灯光强度调整
143
+ // Update light intensity
135
144
  updateLightIntensity(factor) {
136
145
  lightsGroup.traverse((node) => {
137
146
  if (node.isLight) {
@@ -143,10 +152,10 @@ function autoSetupCameraAndLight(camera, scene, model, options = {}) {
143
152
  },
144
153
  dispose: () => {
145
154
  try {
146
- // 移除灯光组
155
+ // Remove lights group
147
156
  if (lightsGroup.parent)
148
157
  lightsGroup.parent.remove(lightsGroup);
149
- // 清理阴影资源
158
+ // Dispose shadow resources
150
159
  lightsGroup.traverse((node) => {
151
160
  if (node.isLight) {
152
161
  const l = node;
@@ -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,14 +22,24 @@ 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
45
  var _a, _b, _c, _d, _e, _f;
@@ -44,8 +54,8 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
44
54
  dotSpacing: (_c = options === null || options === void 0 ? void 0 : options.dotSpacing) !== null && _c !== void 0 ? _c : 2,
45
55
  lineColor: (options === null || options === void 0 ? void 0 : options.lineColor) || 'rgba(200,200,200,0.7)',
46
56
  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, // 淡入时长
57
+ updateInterval: (_e = options === null || options === void 0 ? void 0 : options.updateInterval) !== null && _e !== void 0 ? _e : 0, // Default update every frame
58
+ fadeInDuration: (_f = options === null || options === void 0 ? void 0 : options.fadeInDuration) !== null && _f !== void 0 ? _f : 300, // Fade-in duration
49
59
  };
50
60
  const container = document.createElement('div');
51
61
  container.style.position = 'absolute';
@@ -71,10 +81,10 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
71
81
  let currentLabelsMap = Object.assign({}, modelLabelsMap);
72
82
  let labels = [];
73
83
  let isActive = true;
74
- let isPaused = false; // ✨ 暂停状态
75
- let rafId = null; // ✨ RAF ID
76
- let lastUpdateTime = 0; // ✨ 上次更新时间
77
- // 注入样式(带淡入动画)
84
+ let isPaused = false;
85
+ let rafId = null;
86
+ let lastUpdateTime = 0;
87
+ // Inject styles (with fade-in animation)
78
88
  const styleId = 'three-model-label-styles';
79
89
  if (!document.getElementById(styleId)) {
80
90
  const style = document.createElement('style');
@@ -113,14 +123,14 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
113
123
  `;
114
124
  document.head.appendChild(style);
115
125
  }
116
- // 获取或更新缓存的顶部位置
126
+ // Get or update cached top position
117
127
  const getObjectTopPosition = (labelData) => {
118
128
  const obj = labelData.object;
119
- // 如果有缓存且对象没有变换,直接返回
129
+ // If cached and object hasn't transformed, return cached
120
130
  if (labelData.cachedTopPos && !obj.matrixWorldNeedsUpdate) {
121
131
  return labelData.cachedTopPos.clone();
122
132
  }
123
- // 重新计算
133
+ // Recalculate
124
134
  const box = new THREE__namespace.Box3().setFromObject(obj);
125
135
  labelData.cachedBox = box;
126
136
  if (!box.isEmpty()) {
@@ -198,20 +208,20 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
198
208
  wrapper,
199
209
  dot,
200
210
  line,
201
- cachedBox: null, // 初始化缓存
211
+ cachedBox: null, // Initialize cache
202
212
  cachedTopPos: null
203
213
  });
204
214
  }
205
215
  });
206
216
  };
207
217
  rebuildLabels();
208
- // 优化的更新函数
218
+ // Optimized update function
209
219
  const updateLabels = (timestamp) => {
210
220
  if (!isActive || isPaused) {
211
221
  rafId = null;
212
222
  return;
213
223
  }
214
- // ✨ 节流处理
224
+ // Throttle
215
225
  if (cfg.updateInterval > 0 && timestamp - lastUpdateTime < cfg.updateInterval) {
216
226
  rafId = requestAnimationFrame(updateLabels);
217
227
  return;
@@ -224,7 +234,7 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
224
234
  svg.setAttribute('height', `${height}`);
225
235
  labels.forEach((labelData) => {
226
236
  const { el, wrapper, dot, line } = labelData;
227
- const topWorld = getObjectTopPosition(labelData); // 使用缓存
237
+ const topWorld = getObjectTopPosition(labelData); // Use cache
228
238
  const topNDC = topWorld.clone().project(camera);
229
239
  const modelX = (topNDC.x * 0.5 + 0.5) * width + rect.left;
230
240
  const modelY = (-(topNDC.y * 0.5) + 0.5) * height + rect.top;
@@ -259,7 +269,7 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
259
269
  currentLabelsMap = Object.assign({}, newMap);
260
270
  rebuildLabels();
261
271
  },
262
- // 暂停更新
272
+ // Pause update
263
273
  pause() {
264
274
  isPaused = true;
265
275
  if (rafId !== null) {
@@ -267,7 +277,7 @@ function createModelsLabel(camera, renderer, parentModel, modelLabelsMap, option
267
277
  rafId = null;
268
278
  }
269
279
  },
270
- // 恢复更新
280
+ // Resume update
271
281
  resume() {
272
282
  if (!isPaused)
273
283
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/ui/modelsLabel.ts"],"sourcesContent":[null],"names":["THREE"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../src/ui/modelsLabel.ts"],"sourcesContent":[null],"names":["THREE"],"mappings":"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"}