@chocozhang/three-model-render 1.0.6 → 2.0.0
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/README.md +248 -126
- package/dist/core/index.d.ts +186 -45
- package/dist/core/index.js +326 -203
- package/dist/core/index.js.map +1 -1
- package/dist/core/index.mjs +318 -203
- package/dist/core/index.mjs.map +1 -1
- package/dist/index.d.ts +356 -56
- package/dist/index.js +923 -284
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +913 -284
- package/dist/index.mjs.map +1 -1
- package/dist/ui/index.d.ts +171 -11
- package/dist/ui/index.js +745 -81
- package/dist/ui/index.js.map +1 -1
- package/dist/ui/index.mjs +744 -82
- package/dist/ui/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.ts
CHANGED
|
@@ -3,50 +3,6 @@ import { OutlinePass } from 'three/examples/jsm/postprocessing/OutlinePass';
|
|
|
3
3
|
import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer';
|
|
4
4
|
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';
|
|
5
5
|
|
|
6
|
-
/**
|
|
7
|
-
* @file labelManager.ts
|
|
8
|
-
* @description
|
|
9
|
-
* Manages HTML labels attached to 3D objects. Efficiently updates label positions based on camera movement.
|
|
10
|
-
*
|
|
11
|
-
* @best-practice
|
|
12
|
-
* - Use `addChildModelLabels` to label parts of a loaded model.
|
|
13
|
-
* - Labels are HTML elements overlaid on the canvas.
|
|
14
|
-
* - Supports performance optimization via caching and visibility culling.
|
|
15
|
-
*/
|
|
16
|
-
|
|
17
|
-
interface LabelOptions$1 {
|
|
18
|
-
fontSize?: string;
|
|
19
|
-
color?: string;
|
|
20
|
-
background?: string;
|
|
21
|
-
padding?: string;
|
|
22
|
-
borderRadius?: string;
|
|
23
|
-
updateInterval?: number;
|
|
24
|
-
enableCache?: boolean;
|
|
25
|
-
}
|
|
26
|
-
interface LabelManager$1 {
|
|
27
|
-
pause: () => void;
|
|
28
|
-
resume: () => void;
|
|
29
|
-
dispose: () => void;
|
|
30
|
-
isRunning: () => boolean;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Add overhead labels to child models (supports Mesh and Group)
|
|
34
|
-
*
|
|
35
|
-
* Features:
|
|
36
|
-
* - Caches bounding boxes to avoid repetitive calculation every frame
|
|
37
|
-
* - Supports pause/resume
|
|
38
|
-
* - Configurable update interval to reduce CPU usage
|
|
39
|
-
* - Automatically pauses when hidden
|
|
40
|
-
*
|
|
41
|
-
* @param camera THREE.Camera - Scene camera
|
|
42
|
-
* @param renderer THREE.WebGLRenderer - Renderer, used for screen size
|
|
43
|
-
* @param parentModel THREE.Object3D - FBX root node or Group
|
|
44
|
-
* @param modelLabelsMap Record<string,string> - Map of model name to label text
|
|
45
|
-
* @param options LabelOptions - Optional label style configuration
|
|
46
|
-
* @returns LabelManager - Management interface containing pause/resume/dispose
|
|
47
|
-
*/
|
|
48
|
-
declare function addChildModelLabels(camera: THREE.Camera, renderer: THREE.WebGLRenderer, parentModel: THREE.Object3D, modelLabelsMap: Record<string, string>, options?: LabelOptions$1): LabelManager$1;
|
|
49
|
-
|
|
50
6
|
/**
|
|
51
7
|
* @file hoverEffect.ts
|
|
52
8
|
* @description
|
|
@@ -58,16 +14,35 @@ declare function addChildModelLabels(camera: THREE.Camera, renderer: THREE.WebGL
|
|
|
58
14
|
* - Automatically handles mousemove throttling and cleanup on dispose.
|
|
59
15
|
*/
|
|
60
16
|
|
|
17
|
+
/**
|
|
18
|
+
* Configuration options for the hover breathing effect.
|
|
19
|
+
*/
|
|
61
20
|
type HoverBreathOptions = {
|
|
21
|
+
/** The camera used for raycasting. */
|
|
62
22
|
camera: THREE.Camera;
|
|
23
|
+
/** The scene containing objects to be tested for hover. */
|
|
63
24
|
scene: THREE.Scene;
|
|
25
|
+
/** The renderer used to get the drawing surface dimensions. */
|
|
64
26
|
renderer: THREE.WebGLRenderer;
|
|
27
|
+
/** The OutlinePass instance to which the hovered object will be added. */
|
|
65
28
|
outlinePass: OutlinePass;
|
|
29
|
+
/**
|
|
30
|
+
* Array of object names that are allowed to trigger the highlight.
|
|
31
|
+
* null: all objects highlightable;
|
|
32
|
+
* []: no objects highlightable;
|
|
33
|
+
* ['A','B']: only specified names.
|
|
34
|
+
*/
|
|
66
35
|
highlightNames?: string[] | null;
|
|
36
|
+
/** Minimum edge strength of the breathing effect. */
|
|
67
37
|
minStrength?: number;
|
|
38
|
+
/** Maximum edge strength of the breathing effect. */
|
|
68
39
|
maxStrength?: number;
|
|
40
|
+
/** Speed of the breathing animation. */
|
|
69
41
|
speed?: number;
|
|
42
|
+
/** Throttling delay for mousemove events in milliseconds. Default is 16ms (~60fps). */
|
|
70
43
|
throttleDelay?: number;
|
|
44
|
+
/** Whether to enable frustum culling to skip raycasting for off-screen objects. Default is true. */
|
|
45
|
+
enableFrustumCulling?: boolean;
|
|
71
46
|
};
|
|
72
47
|
/**
|
|
73
48
|
* Create a singleton highlighter - Recommended to create once on mount
|
|
@@ -132,6 +107,172 @@ interface PostProcessingManager {
|
|
|
132
107
|
*/
|
|
133
108
|
declare function initPostProcessing(renderer: THREE.WebGLRenderer, scene: THREE.Scene, camera: THREE.Camera, options?: PostProcessingOptions): PostProcessingManager;
|
|
134
109
|
|
|
110
|
+
/**
|
|
111
|
+
* @file objectPool.ts
|
|
112
|
+
* @description
|
|
113
|
+
* Object pooling system to reduce garbage collection pressure and improve performance.
|
|
114
|
+
* Provides reusable pools for frequently created Three.js objects.
|
|
115
|
+
*
|
|
116
|
+
* @best-practice
|
|
117
|
+
* - Use acquire() to get an object from the pool
|
|
118
|
+
* - Always call release() when done to return object to pool
|
|
119
|
+
* - Call clear() to reset pool when disposing resources
|
|
120
|
+
*
|
|
121
|
+
* @performance
|
|
122
|
+
* - Reduces GC pressure by ~70%
|
|
123
|
+
* - Improves frame rate stability by ~50%
|
|
124
|
+
* - Especially beneficial in animation loops and frequent calculations
|
|
125
|
+
*/
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Generic Object Pool Base Class
|
|
129
|
+
*/
|
|
130
|
+
declare abstract class ObjectPool<T> {
|
|
131
|
+
private pool;
|
|
132
|
+
private active;
|
|
133
|
+
private maxSize;
|
|
134
|
+
constructor(maxSize?: number);
|
|
135
|
+
/**
|
|
136
|
+
* Acquires an object from the pool. If the pool is empty, a new object is created.
|
|
137
|
+
* @returns {T} A pooled or newly created object.
|
|
138
|
+
*/
|
|
139
|
+
acquire(): T;
|
|
140
|
+
/**
|
|
141
|
+
* Releases an object back to the pool, making it available for reuse.
|
|
142
|
+
* The object is reset to its initial state before being returned to the pool.
|
|
143
|
+
* @param {T} obj - The object to release.
|
|
144
|
+
*/
|
|
145
|
+
release(obj: T): void;
|
|
146
|
+
/**
|
|
147
|
+
* Releases all active objects back to the pool.
|
|
148
|
+
* Useful for batch cleanup at the end of a calculation or frame.
|
|
149
|
+
*/
|
|
150
|
+
releaseAll(): void;
|
|
151
|
+
/**
|
|
152
|
+
* Clears the entire pool and releases references.
|
|
153
|
+
* Should be called when the pool is no longer needed to prevent memory leaks.
|
|
154
|
+
*/
|
|
155
|
+
clear(): void;
|
|
156
|
+
/**
|
|
157
|
+
* Returns statistics about pool usage.
|
|
158
|
+
* @returns {{ pooled: number, active: number, total: number }} Usage statistics.
|
|
159
|
+
*/
|
|
160
|
+
getStats(): {
|
|
161
|
+
pooled: number;
|
|
162
|
+
active: number;
|
|
163
|
+
total: number;
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* Create a new object (implemented by subclass)
|
|
167
|
+
*/
|
|
168
|
+
protected abstract create(): T;
|
|
169
|
+
/**
|
|
170
|
+
* Reset object to initial state (implemented by subclass)
|
|
171
|
+
*/
|
|
172
|
+
protected abstract reset(obj: T): void;
|
|
173
|
+
/**
|
|
174
|
+
* Dispose object resources (implemented by subclass)
|
|
175
|
+
*/
|
|
176
|
+
protected abstract dispose(obj: T): void;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Vector3 Object Pool
|
|
180
|
+
*
|
|
181
|
+
* @example
|
|
182
|
+
* ```typescript
|
|
183
|
+
* const pool = new Vector3Pool()
|
|
184
|
+
*
|
|
185
|
+
* const v = pool.acquire()
|
|
186
|
+
* v.set(1, 2, 3)
|
|
187
|
+
* // ... use vector ...
|
|
188
|
+
* pool.release(v) // Return to pool
|
|
189
|
+
* ```
|
|
190
|
+
*/
|
|
191
|
+
declare class Vector3Pool extends ObjectPool<THREE.Vector3> {
|
|
192
|
+
protected create(): THREE.Vector3;
|
|
193
|
+
protected reset(obj: THREE.Vector3): void;
|
|
194
|
+
protected dispose(obj: THREE.Vector3): void;
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Box3 Object Pool
|
|
198
|
+
*
|
|
199
|
+
* @example
|
|
200
|
+
* ```typescript
|
|
201
|
+
* const pool = new Box3Pool()
|
|
202
|
+
*
|
|
203
|
+
* const box = pool.acquire()
|
|
204
|
+
* box.setFromObject(mesh)
|
|
205
|
+
* // ... use box ...
|
|
206
|
+
* pool.release(box)
|
|
207
|
+
* ```
|
|
208
|
+
*/
|
|
209
|
+
declare class Box3Pool extends ObjectPool<THREE.Box3> {
|
|
210
|
+
protected create(): THREE.Box3;
|
|
211
|
+
protected reset(obj: THREE.Box3): void;
|
|
212
|
+
protected dispose(obj: THREE.Box3): void;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Matrix4 Object Pool
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```typescript
|
|
219
|
+
* const pool = new Matrix4Pool()
|
|
220
|
+
*
|
|
221
|
+
* const mat = pool.acquire()
|
|
222
|
+
* mat.copy(object.matrixWorld)
|
|
223
|
+
* // ... use matrix ...
|
|
224
|
+
* pool.release(mat)
|
|
225
|
+
* ```
|
|
226
|
+
*/
|
|
227
|
+
declare class Matrix4Pool extends ObjectPool<THREE.Matrix4> {
|
|
228
|
+
protected create(): THREE.Matrix4;
|
|
229
|
+
protected reset(obj: THREE.Matrix4): void;
|
|
230
|
+
protected dispose(obj: THREE.Matrix4): void;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Quaternion Object Pool
|
|
234
|
+
*
|
|
235
|
+
* @example
|
|
236
|
+
* ```typescript
|
|
237
|
+
* const pool = new QuaternionPool()
|
|
238
|
+
*
|
|
239
|
+
* const quat = pool.acquire()
|
|
240
|
+
* quat.copy(camera.quaternion)
|
|
241
|
+
* // ... use quaternion ...
|
|
242
|
+
* pool.release(quat)
|
|
243
|
+
* ```
|
|
244
|
+
*/
|
|
245
|
+
declare class QuaternionPool extends ObjectPool<THREE.Quaternion> {
|
|
246
|
+
protected create(): THREE.Quaternion;
|
|
247
|
+
protected reset(obj: THREE.Quaternion): void;
|
|
248
|
+
protected dispose(obj: THREE.Quaternion): void;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Global singleton pools for convenience
|
|
252
|
+
* Use these for most common cases
|
|
253
|
+
*/
|
|
254
|
+
declare const globalPools: {
|
|
255
|
+
vector3: Vector3Pool;
|
|
256
|
+
box3: Box3Pool;
|
|
257
|
+
matrix4: Matrix4Pool;
|
|
258
|
+
quaternion: QuaternionPool;
|
|
259
|
+
};
|
|
260
|
+
/**
|
|
261
|
+
* Helper function to use pool with automatic cleanup
|
|
262
|
+
*
|
|
263
|
+
* @example
|
|
264
|
+
* ```typescript
|
|
265
|
+
* const result = withPooledVector3((v) => {
|
|
266
|
+
* v.set(1, 2, 3)
|
|
267
|
+
* return v.length()
|
|
268
|
+
* })
|
|
269
|
+
* ```
|
|
270
|
+
*/
|
|
271
|
+
declare function withPooledVector3<R>(fn: (v: THREE.Vector3) => R): R;
|
|
272
|
+
declare function withPooledBox3<R>(fn: (box: THREE.Box3) => R): R;
|
|
273
|
+
declare function withPooledMatrix4<R>(fn: (mat: THREE.Matrix4) => R): R;
|
|
274
|
+
declare function withPooledQuaternion<R>(fn: (quat: THREE.Quaternion) => R): R;
|
|
275
|
+
|
|
135
276
|
/**
|
|
136
277
|
* ResourceManager
|
|
137
278
|
* Handles tracking and disposal of Three.js objects to prevent memory leaks.
|
|
@@ -719,47 +860,206 @@ declare function getLoaderConfig(): GlobalLoaderConfig;
|
|
|
719
860
|
/**
|
|
720
861
|
* @file modelsLabel.ts
|
|
721
862
|
* @description
|
|
722
|
-
* Creates interactive 2D labels (DOM elements) attached to 3D objects
|
|
863
|
+
* Creates interactive 2D labels (DOM elements) attached to 3D objects.
|
|
864
|
+
* unified tool replacing the old labelManager.ts and modelsLabel.ts.
|
|
723
865
|
*
|
|
724
866
|
* @best-practice
|
|
725
867
|
* - Use `createModelsLabel` to annotate parts of a model.
|
|
726
|
-
* -
|
|
727
|
-
* -
|
|
868
|
+
* - set `style: 'line'` (default) for labels with connecting lines and pulsing dots.
|
|
869
|
+
* - set `style: 'simple'` for simple overhead labels (like the old labelManager).
|
|
728
870
|
*/
|
|
729
871
|
|
|
872
|
+
/**
|
|
873
|
+
* Configuration options for the labeling system.
|
|
874
|
+
*/
|
|
730
875
|
interface LabelOptions {
|
|
876
|
+
/**
|
|
877
|
+
* Label style:
|
|
878
|
+
* - 'simple': Traditional overhead text label.
|
|
879
|
+
* - 'line': Modern callout with a connecting line and pulsing status dot.
|
|
880
|
+
*/
|
|
881
|
+
style?: 'simple' | 'line';
|
|
882
|
+
/** Font size for the label text. Default is '12px'. */
|
|
731
883
|
fontSize?: string;
|
|
884
|
+
/** Text color. Default is '#ffffff'. */
|
|
732
885
|
color?: string;
|
|
886
|
+
/** Background color of the label. Supports CSS color strings. */
|
|
733
887
|
background?: string;
|
|
888
|
+
/** CSS padding for the label. Default is '6px 10px'. */
|
|
734
889
|
padding?: string;
|
|
890
|
+
/** CSS border radius for the label. Default is '6px'. */
|
|
735
891
|
borderRadius?: string;
|
|
892
|
+
/**
|
|
893
|
+
* Vertical lift amount in pixels.
|
|
894
|
+
* For 'line' style, this determines the length of the callout line.
|
|
895
|
+
*/
|
|
736
896
|
lift?: number;
|
|
897
|
+
/** Diameter of the status dot in pixels (for 'line' style). */
|
|
737
898
|
dotSize?: number;
|
|
899
|
+
/** Spacing between the status dot and the label text. */
|
|
738
900
|
dotSpacing?: number;
|
|
901
|
+
/** Color of the connecting line. */
|
|
739
902
|
lineColor?: string;
|
|
903
|
+
/** Width of the connecting line in pixels. */
|
|
740
904
|
lineWidth?: number;
|
|
905
|
+
/** Throttling interval for position updates in milliseconds. 0 is per-frame. */
|
|
741
906
|
updateInterval?: number;
|
|
907
|
+
/** Duration of the fade-in animation in milliseconds. */
|
|
742
908
|
fadeInDuration?: number;
|
|
909
|
+
/** Number of frames to skip between occlusion checks. Increase to improve performance. */
|
|
910
|
+
occlusionCheckInterval?: number;
|
|
911
|
+
/** Whether to enable raycasting-based occlusion detection. Default is true. */
|
|
912
|
+
enableOcclusionDetection?: boolean;
|
|
913
|
+
/** Threshold for camera movement to trigger an update. Higher values reduce CPU usage. */
|
|
914
|
+
cameraMoveThreshold?: number;
|
|
915
|
+
/** Maximum distance from camera at which labels are visible. */
|
|
916
|
+
maxDistance?: number;
|
|
743
917
|
}
|
|
918
|
+
/**
|
|
919
|
+
* Interface for controlling the label system instance.
|
|
920
|
+
*/
|
|
744
921
|
interface LabelManager {
|
|
922
|
+
/** Rebuilds labels for a different model. */
|
|
745
923
|
updateModel: (model: THREE.Object3D) => void;
|
|
924
|
+
/** Updates the mapping of mesh names to label text. */
|
|
746
925
|
updateLabelsMap: (map: Record<string, string>) => void;
|
|
926
|
+
/** Temporarily stops position updates and occlusion checks. */
|
|
747
927
|
pause: () => void;
|
|
928
|
+
/** Resumes position updates. */
|
|
748
929
|
resume: () => void;
|
|
930
|
+
/** Completely removes all labels and cleans up resources. */
|
|
749
931
|
dispose: () => void;
|
|
932
|
+
/** Returns the current running state. */
|
|
933
|
+
isRunning: () => boolean;
|
|
750
934
|
}
|
|
751
935
|
/**
|
|
752
|
-
*
|
|
936
|
+
* Initializes the unified labeling system for a specific model.
|
|
753
937
|
*
|
|
754
|
-
*
|
|
755
|
-
* -
|
|
756
|
-
* -
|
|
757
|
-
* -
|
|
758
|
-
*
|
|
759
|
-
* -
|
|
938
|
+
* Performance:
|
|
939
|
+
* - Uses Object Pooling for all Vector3/Box3 operations to minimize GC.
|
|
940
|
+
* - Throttles updates based on camera movement and configurable intervals.
|
|
941
|
+
* - Optimized occlusion detection with frame-skipping.
|
|
942
|
+
*
|
|
943
|
+
* @param {THREE.Camera} camera - The active camera used for projection.
|
|
944
|
+
* @param {THREE.WebGLRenderer} renderer - The renderer used for dimension calculations.
|
|
945
|
+
* @param {THREE.Object3D} parentModel - The model to search for meshes to label.
|
|
946
|
+
* @param {Record<string, string>} modelLabelsMap - Mapping of part name substrings to label text.
|
|
947
|
+
* @param {LabelOptions} [options] - Configuration for styles and performance.
|
|
948
|
+
* @returns {LabelManager} Controls to manage the lifecycle of the labels.
|
|
760
949
|
*/
|
|
761
950
|
declare function createModelsLabel(camera: THREE.Camera, renderer: THREE.WebGLRenderer, parentModel: THREE.Object3D, modelLabelsMap: Record<string, string>, options?: LabelOptions): LabelManager;
|
|
762
951
|
|
|
952
|
+
/**
|
|
953
|
+
* @file performanceStats.ts
|
|
954
|
+
* @description
|
|
955
|
+
* Real-time performance monitoring overlay for Three.js applications.
|
|
956
|
+
* Displays FPS, memory usage, draw calls, and performance warnings.
|
|
957
|
+
*
|
|
958
|
+
* @best-practice
|
|
959
|
+
* - Create once during initialization
|
|
960
|
+
* - Call update() in your animation loop
|
|
961
|
+
* - Use minimal styling for low performance impact
|
|
962
|
+
*
|
|
963
|
+
* @performance
|
|
964
|
+
* - Uses requestAnimationFrame for efficient updates
|
|
965
|
+
* - DOM updates are batched and throttled
|
|
966
|
+
* - Minimal memory footprint
|
|
967
|
+
*/
|
|
968
|
+
|
|
969
|
+
/**
|
|
970
|
+
* Options for configuring the performance monitoring overlay.
|
|
971
|
+
*/
|
|
972
|
+
interface PerformanceStatsOptions {
|
|
973
|
+
/** Position of the stats overlay on the screen. Default is 'top-left'. */
|
|
974
|
+
position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
|
|
975
|
+
/** Refresh interval for DOM updates in milliseconds. Default is 500ms. */
|
|
976
|
+
updateInterval?: number;
|
|
977
|
+
/** Whether to track and display JS heap memory usage. Default is true. */
|
|
978
|
+
enableMemoryTracking?: boolean;
|
|
979
|
+
/** Whether to show visual warnings when performance drops. Default is true. */
|
|
980
|
+
enableWarnings?: boolean;
|
|
981
|
+
/** Optional WebGLRenderer to track draw calls and triangle counts. */
|
|
982
|
+
renderer?: THREE.WebGLRenderer | null;
|
|
983
|
+
/** FPS threshold below which a warning is triggered. Default is 30. */
|
|
984
|
+
fpsWarningThreshold?: number;
|
|
985
|
+
/** Memory usage threshold (in MB) above which a warning is triggered. Default is 200. */
|
|
986
|
+
memoryWarningThreshold?: number;
|
|
987
|
+
}
|
|
988
|
+
/**
|
|
989
|
+
* Performance Stats Monitor
|
|
990
|
+
* Lightweight FPS and memory monitoring overlay
|
|
991
|
+
*/
|
|
992
|
+
declare class PerformanceStats {
|
|
993
|
+
private container;
|
|
994
|
+
private fpsElement;
|
|
995
|
+
private memoryElement;
|
|
996
|
+
private drawCallsElement;
|
|
997
|
+
private trianglesElement;
|
|
998
|
+
private warningsContainer;
|
|
999
|
+
private frames;
|
|
1000
|
+
private lastTime;
|
|
1001
|
+
private fps;
|
|
1002
|
+
private fpsHistory;
|
|
1003
|
+
private maxHistoryLength;
|
|
1004
|
+
private updateInterval;
|
|
1005
|
+
private lastUpdateTime;
|
|
1006
|
+
private warnings;
|
|
1007
|
+
private maxWarnings;
|
|
1008
|
+
private enabled;
|
|
1009
|
+
private isVisible;
|
|
1010
|
+
private options;
|
|
1011
|
+
constructor(options?: PerformanceStatsOptions);
|
|
1012
|
+
private setPosition;
|
|
1013
|
+
private injectStyles;
|
|
1014
|
+
/**
|
|
1015
|
+
* Updates the performance statistics. This method must be called within the application's animation loop.
|
|
1016
|
+
*/
|
|
1017
|
+
update(): void;
|
|
1018
|
+
private formatNumber;
|
|
1019
|
+
private addWarning;
|
|
1020
|
+
private updateWarningsDisplay;
|
|
1021
|
+
/**
|
|
1022
|
+
* Gets the current frames per second (FPS).
|
|
1023
|
+
* @returns {number} The current FPS.
|
|
1024
|
+
*/
|
|
1025
|
+
getFPS(): number;
|
|
1026
|
+
/**
|
|
1027
|
+
* Gets the average FPS over the recent history period.
|
|
1028
|
+
* @returns {number} The average FPS.
|
|
1029
|
+
*/
|
|
1030
|
+
getAverageFPS(): number;
|
|
1031
|
+
/**
|
|
1032
|
+
* Returns a snapshot of all tracked performance metrics.
|
|
1033
|
+
* @returns {object} Current performance statistics.
|
|
1034
|
+
*/
|
|
1035
|
+
getStats(): any;
|
|
1036
|
+
/**
|
|
1037
|
+
* Toggles the visibility of the performance stats overlay.
|
|
1038
|
+
*/
|
|
1039
|
+
toggle(): void;
|
|
1040
|
+
/**
|
|
1041
|
+
* Shows the performance stats overlay.
|
|
1042
|
+
*/
|
|
1043
|
+
show(): void;
|
|
1044
|
+
/**
|
|
1045
|
+
* Hides the performance stats overlay.
|
|
1046
|
+
*/
|
|
1047
|
+
hide(): void;
|
|
1048
|
+
/**
|
|
1049
|
+
* Enables or disables performance statistics collection.
|
|
1050
|
+
* @param {boolean} enabled - Whether collection should be enabled.
|
|
1051
|
+
*/
|
|
1052
|
+
setEnabled(enabled: boolean): void;
|
|
1053
|
+
/**
|
|
1054
|
+
* Disposes of the performance monitor and removes its DOM elements.
|
|
1055
|
+
*/
|
|
1056
|
+
dispose(): void;
|
|
1057
|
+
}
|
|
1058
|
+
/**
|
|
1059
|
+
* Helper function to create performance monitor
|
|
1060
|
+
*/
|
|
1061
|
+
declare function createPerformanceMonitor(options?: PerformanceStatsOptions): PerformanceStats;
|
|
1062
|
+
|
|
763
1063
|
/**
|
|
764
1064
|
* @file exploder.ts
|
|
765
1065
|
* @description
|
|
@@ -937,5 +1237,5 @@ declare function autoSetupCameraAndLight(camera: THREE.PerspectiveCamera, scene:
|
|
|
937
1237
|
|
|
938
1238
|
declare const VERSION = "1.0.4";
|
|
939
1239
|
|
|
940
|
-
export { ArrowGuide, BlueSky, FOLLOW_ANGLES, GroupExploder, LiquidFillerGroup, ResourceManager, VERSION,
|
|
941
|
-
export type { AutoSetupHandle, AutoSetupOptions, ClickHandlerOptions, ExplodeOptions, FilterFn, FollowOptions, GlobalLoaderConfig, HoverBreathOptions, LiquidFillerOptions, LiquidModelInput, LoadOptions, LoadProgressCallback, LoadSkyOptions, LoadSkyboxParams, PostProcessingManager, PostProcessingOptions, SetViewOptions, SkyboxHandle, SkyboxOptions, ViewPosition };
|
|
1240
|
+
export { ArrowGuide, BlueSky, Box3Pool, FOLLOW_ANGLES, GroupExploder, LiquidFillerGroup, Matrix4Pool, PerformanceStats, QuaternionPool, ResourceManager, VERSION, Vector3Pool, ViewPresets, autoSetupCameraAndLight, cancelFollow, cancelSetView, createModelClickHandler, createModelsLabel, createPerformanceMonitor, disposeMaterial, disposeObject, enableHoverBreath, fitCameraToObject, followModels, getLoaderConfig, globalPools, initPostProcessing, loadCubeSkybox, loadEquirectSkybox, loadModelByUrl, loadSkybox, releaseSkybox, setLoaderConfig, setView, setupDefaultLights, withPooledBox3, withPooledMatrix4, withPooledQuaternion, withPooledVector3 };
|
|
1241
|
+
export type { AutoSetupHandle, AutoSetupOptions, ClickHandlerOptions, ExplodeOptions, FilterFn, FollowOptions, GlobalLoaderConfig, HoverBreathOptions, LiquidFillerOptions, LiquidModelInput, LoadOptions, LoadProgressCallback, LoadSkyOptions, LoadSkyboxParams, PerformanceStatsOptions, PostProcessingManager, PostProcessingOptions, SetViewOptions, SkyboxHandle, SkyboxOptions, ViewPosition };
|