@2112-lab/central-plant 0.1.4 → 0.1.6

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 (88) hide show
  1. package/dist/bundle/index.js +33146 -1
  2. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +432 -1
  3. package/dist/cjs/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1448 -1
  4. package/dist/cjs/node_modules/three/examples/jsm/controls/OrbitControls.js +1853 -1
  5. package/dist/cjs/node_modules/three/examples/jsm/exporters/GLTFExporter.js +3537 -1
  6. package/dist/cjs/node_modules/three/examples/jsm/exporters/OBJExporter.js +305 -1
  7. package/dist/cjs/node_modules/three/examples/jsm/exporters/PLYExporter.js +542 -1
  8. package/dist/cjs/node_modules/three/examples/jsm/exporters/STLExporter.js +218 -1
  9. package/dist/cjs/node_modules/three/examples/jsm/loaders/DRACOLoader.js +683 -1
  10. package/dist/cjs/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4811 -1
  11. package/dist/cjs/node_modules/three/examples/jsm/loaders/RGBELoader.js +480 -1
  12. package/dist/cjs/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +309 -1
  13. package/dist/cjs/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +120 -1
  14. package/dist/cjs/src/analysis/analysis.js +560 -1
  15. package/dist/cjs/src/analysis/testing.js +958 -1
  16. package/dist/cjs/src/core/centralPlant.js +1149 -1
  17. package/dist/cjs/src/core/debugLogger.js +175 -1
  18. package/dist/cjs/src/core/mathUtils.js +574 -1
  19. package/dist/cjs/src/core/nameUtils.js +93 -1
  20. package/dist/cjs/src/data/export.js +716 -1
  21. package/dist/cjs/src/data/import.js +380 -1
  22. package/dist/cjs/src/data/numerics.js +522 -1
  23. package/dist/cjs/src/helpers/sceneHelper.js +572 -1
  24. package/dist/cjs/src/index.js +69 -1
  25. package/dist/cjs/src/managers/components/animationManager.js +123 -1
  26. package/dist/cjs/src/managers/components/componentManager.js +332 -1
  27. package/dist/cjs/src/managers/components/pathfindingManager.js +1441 -1
  28. package/dist/cjs/src/managers/controls/TransformControls.js +1063 -1
  29. package/dist/cjs/src/managers/controls/cameraControlsManager.js +79 -1
  30. package/dist/cjs/src/managers/controls/dragDropManager.js +1026 -1
  31. package/dist/cjs/src/managers/controls/keyboardControlsManager.js +395 -1
  32. package/dist/cjs/src/managers/controls/transformControlsManager.js +1807 -1
  33. package/dist/cjs/src/managers/environment/environmentManager.js +714 -1
  34. package/dist/cjs/src/managers/environment/textureConfig.js +229 -1
  35. package/dist/cjs/src/managers/scene/sceneExportManager.js +264 -1
  36. package/dist/cjs/src/managers/scene/sceneInitializationManager.js +346 -1
  37. package/dist/cjs/src/managers/scene/sceneOperationsManager.js +1509 -1
  38. package/dist/cjs/src/managers/scene/sceneTooltipsManager.js +661 -1
  39. package/dist/cjs/src/managers/system/disposalManager.js +444 -1
  40. package/dist/cjs/src/managers/system/hotReloadManager.js +291 -1
  41. package/dist/cjs/src/managers/system/performanceMonitor.js +863 -1
  42. package/dist/cjs/src/rendering/modelPreloader.js +369 -1
  43. package/dist/cjs/src/rendering/rendering2D.js +631 -1
  44. package/dist/cjs/src/rendering/rendering3D.js +685 -1
  45. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +396 -1
  46. package/dist/esm/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1444 -1
  47. package/dist/esm/node_modules/three/examples/jsm/controls/OrbitControls.js +1849 -1
  48. package/dist/esm/node_modules/three/examples/jsm/exporters/GLTFExporter.js +3533 -1
  49. package/dist/esm/node_modules/three/examples/jsm/exporters/OBJExporter.js +301 -1
  50. package/dist/esm/node_modules/three/examples/jsm/exporters/PLYExporter.js +538 -1
  51. package/dist/esm/node_modules/three/examples/jsm/exporters/STLExporter.js +214 -1
  52. package/dist/esm/node_modules/three/examples/jsm/loaders/DRACOLoader.js +679 -1
  53. package/dist/esm/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4807 -1
  54. package/dist/esm/node_modules/three/examples/jsm/loaders/RGBELoader.js +476 -1
  55. package/dist/esm/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +304 -1
  56. package/dist/esm/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +116 -1
  57. package/dist/esm/src/analysis/analysis.js +536 -1
  58. package/dist/esm/src/analysis/testing.js +954 -1
  59. package/dist/esm/src/core/centralPlant.js +1144 -1
  60. package/dist/esm/src/core/debugLogger.js +167 -1
  61. package/dist/esm/src/core/mathUtils.js +570 -1
  62. package/dist/esm/src/core/nameUtils.js +87 -1
  63. package/dist/esm/src/data/export.js +712 -1
  64. package/dist/esm/src/data/import.js +356 -1
  65. package/dist/esm/src/data/numerics.js +518 -1
  66. package/dist/esm/src/helpers/sceneHelper.js +547 -1
  67. package/dist/esm/src/index.js +35 -1
  68. package/dist/esm/src/managers/components/animationManager.js +119 -1
  69. package/dist/esm/src/managers/components/componentManager.js +328 -1
  70. package/dist/esm/src/managers/components/pathfindingManager.js +1417 -1
  71. package/dist/esm/src/managers/controls/TransformControls.js +1057 -1
  72. package/dist/esm/src/managers/controls/cameraControlsManager.js +75 -1
  73. package/dist/esm/src/managers/controls/dragDropManager.js +1002 -1
  74. package/dist/esm/src/managers/controls/keyboardControlsManager.js +371 -1
  75. package/dist/esm/src/managers/controls/transformControlsManager.js +1782 -1
  76. package/dist/esm/src/managers/environment/environmentManager.js +690 -1
  77. package/dist/esm/src/managers/environment/textureConfig.js +202 -1
  78. package/dist/esm/src/managers/scene/sceneExportManager.js +260 -1
  79. package/dist/esm/src/managers/scene/sceneInitializationManager.js +322 -1
  80. package/dist/esm/src/managers/scene/sceneOperationsManager.js +1485 -1
  81. package/dist/esm/src/managers/scene/sceneTooltipsManager.js +637 -1
  82. package/dist/esm/src/managers/system/disposalManager.js +440 -1
  83. package/dist/esm/src/managers/system/hotReloadManager.js +287 -1
  84. package/dist/esm/src/managers/system/performanceMonitor.js +858 -1
  85. package/dist/esm/src/rendering/modelPreloader.js +364 -1
  86. package/dist/esm/src/rendering/rendering2D.js +627 -1
  87. package/dist/esm/src/rendering/rendering3D.js +661 -1
  88. package/package.json +1 -1
@@ -1 +1,322 @@
1
- import{createClass as t,classCallCheck as e,asyncToGenerator as n,regenerator as i}from"../../../_virtual/_rollupPluginBabelHelpers.js";import*as o from"three";import{OrbitControls as r}from"../../../node_modules/three/examples/jsm/controls/OrbitControls.js";import{GLTFLoader as s}from"../../../node_modules/three/examples/jsm/loaders/GLTFLoader.js";import{PerformanceMonitor as a,PerformanceUI as u}from"../system/performanceMonitor.js";import{logger as c}from"../../core/debugLogger.js";var l=function(){return t(function t(n){e(this,t),this.sceneViewer=n,this.textureLoader=null,this.gltfLoader=null},[{key:"initializeScene",value:(h=n(i().m(function t(){var e,n,r,s;return i().w(function(t){for(;;)switch(t.n){case 0:(e=this.sceneViewer).scene=new o.Scene,n=e.$refs.container.getBoundingClientRect(),r=n.width,s=n.height,e.camera=new o.PerspectiveCamera(50,r/s,.01,1e3),e.camera.position.set(-8,4,9),e.renderer=new o.WebGLRenderer({antialias:!0}),e.renderer.setSize(r,s),e.renderer.setPixelRatio(Math.min(window.devicePixelRatio,2)),e.renderer.shadowMap.enabled=!0,e.renderer.shadowMap.type=o.PCFSoftShadowMap,e.renderer.physicallyCorrectLights=!0,e.renderer.outputColorSpace=o.SRGBColorSpace,e.renderer.toneMapping=o.LinearToneMapping,e.renderer.toneMappingExposure=1.5,e.$refs.container.appendChild(e.renderer.domElement),c.info("Scene, camera, and renderer initialized");case 1:return t.a(2)}},t,this)})),function(){return h.apply(this,arguments)})},{key:"initializePerformanceMonitoring",value:function(){var t=this.sceneViewer;if("development"===process.env.NODE_ENV)try{var e=document.querySelectorAll("#performance-monitor-ui");e.length>0&&e.forEach(function(t){t.parentNode&&t.parentNode.removeChild(t)})}catch(t){}t.performanceMonitor=new a(t.renderer),t.performanceUI=new u(t.performanceMonitor,t.$refs.container,"light"),t.performanceMonitor.on("warning",function(t){}),t.performanceMonitor.start(),t.performanceUI.show(),this.exposePerformanceMonitoringGlobally(),c.info("Performance monitoring initialized")}},{key:"exposePerformanceMonitoringGlobally",value:function(){var t=this,e=this.sceneViewer;"undefined"!=typeof window&&(window._performanceMonitor=e.performanceMonitor,window._performanceUI=e.performanceUI,window.performance3D={show:function(){return e.performanceUI.show()},hide:function(){return e.performanceUI.hide()},toggle:function(){return e.performanceUI.isVisible?e.performanceUI.hide():e.performanceUI.show()},setTheme:function(t){return e.performanceUI.setTheme(t)},log:function(){return e.performanceMonitor.logSummary()},reset:function(){return e.performanceMonitor.reset()},export:function(){return e.performanceMonitor.exportData()},cleanup:function(){return e.cleanupDuplicatePerformanceMonitors?e.cleanupDuplicatePerformanceMonitors():0},help:function(){}},window.cameraControls={autoRotate:{enable:function(){return t.toggleAutoRotation(!0)},disable:function(){return t.toggleAutoRotation(!1)},toggle:function(){return t.toggleAutoRotation()},setSpeed:function(t){if(e.controls)return e.controls.autoRotateSpeed=t,t}},help:function(){}})}},{key:"initializeLoaders",value:function(){var t=this.sceneViewer;this.textureLoader=new o.TextureLoader,t.textureLoader=this.textureLoader,this.gltfLoader=new s,t.gltfLoader=this.gltfLoader,c.info("Texture and GLTF loaders initialized")}},{key:"setupControls",value:function(){this.sceneViewer.controls=new r(this.sceneViewer.camera,this.sceneViewer.renderer.domElement),this.sceneViewer.controls.enableDamping=!0,this.sceneViewer.controls.dampingFactor=.05,this.sceneViewer.controls.minDistance=1,this.sceneViewer.controls.maxDistance=20,this.sceneViewer.controls.maxPolarAngle=Math.PI/1.5,this.sceneViewer.controls.autoRotate=!0,this.sceneViewer.controls.autoRotateSpeed=.5,c.info("Orbit controls initialized with auto-rotation")}},{key:"setDefaultBackground",value:function(){this.sceneViewer.scene.background=new o.Color(8965358),c.info("Default scene background set")}},{key:"initialize",value:(l=n(i().m(function t(){return i().w(function(t){for(;;)switch(t.n){case 0:return t.n=1,this.initializeScene();case 1:this.initializePerformanceMonitoring(),this.initializeLoaders(),this.setupControls(),this.setDefaultBackground(),c.info("Scene initialization completed");case 2:return t.a(2)}},t,this)})),function(){return l.apply(this,arguments)})},{key:"toggleAutoRotation",value:function(t){var e=this.sceneViewer;return!!e.controls&&(e.controls.autoRotate=void 0!==t?t:!e.controls.autoRotate,e.controls.autoRotate&&(e.controls.dampingFactor=1,setTimeout(function(){e.controls.dampingFactor=.05},100)),c.info("Camera auto-rotation is now ".concat(e.controls.autoRotate?"ENABLED":"DISABLED")),e.controls.autoRotate)}}]);var l,h}();export{l as SceneInitializationManager};
1
+ import { createClass as _createClass, classCallCheck as _classCallCheck, asyncToGenerator as _asyncToGenerator, regenerator as _regenerator } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
+ import * as THREE from 'three';
3
+ import { OrbitControls } from '../../../node_modules/three/examples/jsm/controls/OrbitControls.js';
4
+ import { GLTFLoader } from '../../../node_modules/three/examples/jsm/loaders/GLTFLoader.js';
5
+ import { PerformanceMonitor, PerformanceUI } from '../system/performanceMonitor.js';
6
+ import { logger } from '../../core/debugLogger.js';
7
+
8
+ var SceneInitializationManager = /*#__PURE__*/function () {
9
+ function SceneInitializationManager(sceneViewer) {
10
+ _classCallCheck(this, SceneInitializationManager);
11
+ this.sceneViewer = sceneViewer;
12
+ this.textureLoader = null;
13
+ this.gltfLoader = null;
14
+ }
15
+
16
+ /**
17
+ * Initialize the Three.js scene, camera, and renderer
18
+ */
19
+ return _createClass(SceneInitializationManager, [{
20
+ key: "initializeScene",
21
+ value: (function () {
22
+ var _initializeScene = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
23
+ var component, containerRect, containerWidth, containerHeight;
24
+ return _regenerator().w(function (_context) {
25
+ while (1) switch (_context.n) {
26
+ case 0:
27
+ component = this.sceneViewer; // Create scene
28
+ component.scene = new THREE.Scene();
29
+
30
+ // Get container dimensions
31
+ containerRect = component.$refs.container.getBoundingClientRect();
32
+ containerWidth = containerRect.width;
33
+ containerHeight = containerRect.height; // Create camera
34
+ component.camera = new THREE.PerspectiveCamera(50, containerWidth / containerHeight, 0.01, 1000);
35
+ component.camera.position.set(-8, 4, 9);
36
+
37
+ // Create renderer
38
+ component.renderer = new THREE.WebGLRenderer({
39
+ antialias: true
40
+ });
41
+ component.renderer.setSize(containerWidth, containerHeight);
42
+ component.renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
43
+ component.renderer.shadowMap.enabled = true;
44
+ component.renderer.shadowMap.type = THREE.PCFSoftShadowMap;
45
+ component.renderer.physicallyCorrectLights = true;
46
+ component.renderer.outputColorSpace = THREE.SRGBColorSpace;
47
+ component.renderer.toneMapping = THREE.LinearToneMapping;
48
+ component.renderer.toneMappingExposure = 1.5;
49
+ component.$refs.container.appendChild(component.renderer.domElement);
50
+ logger.info('Scene, camera, and renderer initialized');
51
+ case 1:
52
+ return _context.a(2);
53
+ }
54
+ }, _callee, this);
55
+ }));
56
+ function initializeScene() {
57
+ return _initializeScene.apply(this, arguments);
58
+ }
59
+ return initializeScene;
60
+ }()
61
+ /**
62
+ * Initialize performance monitoring
63
+ */
64
+ )
65
+ }, {
66
+ key: "initializePerformanceMonitoring",
67
+ value: function initializePerformanceMonitoring() {
68
+ var component = this.sceneViewer;
69
+
70
+ // Clean up any existing performance monitor UI elements before creating new ones (for hot-reload)
71
+ if (process.env.NODE_ENV === 'development') {
72
+ try {
73
+ // Clean up any stray performance monitor elements from previous instances
74
+ var existingElements = document.querySelectorAll('#performance-monitor-ui');
75
+ if (existingElements.length > 0) {
76
+ console.log("\uD83E\uDDF9 Found ".concat(existingElements.length, " existing performance monitor elements, cleaning up..."));
77
+ existingElements.forEach(function (element) {
78
+ if (element.parentNode) {
79
+ element.parentNode.removeChild(element);
80
+ }
81
+ });
82
+ }
83
+ } catch (error) {
84
+ console.warn('âš ī¸ Error during pre-initialization cleanup:', error);
85
+ }
86
+ }
87
+
88
+ // Initialize performance monitoring
89
+ component.performanceMonitor = new PerformanceMonitor(component.renderer);
90
+ component.performanceUI = new PerformanceUI(component.performanceMonitor, component.$refs.container, 'light');
91
+
92
+ // Setup performance monitoring callbacks
93
+ component.performanceMonitor.on('warning', function (warnings) {
94
+ // console.warn('âš ī¸ Performance warnings:', warnings)
95
+ });
96
+ component.performanceMonitor.start();
97
+ component.performanceUI.show();
98
+ this.exposePerformanceMonitoringGlobally();
99
+ logger.info('Performance monitoring initialized');
100
+ }
101
+
102
+ /**
103
+ * Expose performance monitoring to global scope for debugging
104
+ */
105
+ }, {
106
+ key: "exposePerformanceMonitoringGlobally",
107
+ value: function exposePerformanceMonitoringGlobally() {
108
+ var _this = this;
109
+ var component = this.sceneViewer;
110
+ if (typeof window !== 'undefined') {
111
+ window._performanceMonitor = component.performanceMonitor;
112
+ window._performanceUI = component.performanceUI;
113
+ window.performance3D = {
114
+ show: function show() {
115
+ return component.performanceUI.show();
116
+ },
117
+ hide: function hide() {
118
+ return component.performanceUI.hide();
119
+ },
120
+ toggle: function toggle() {
121
+ return component.performanceUI.isVisible ? component.performanceUI.hide() : component.performanceUI.show();
122
+ },
123
+ setTheme: function setTheme(theme) {
124
+ return component.performanceUI.setTheme(theme);
125
+ },
126
+ log: function log() {
127
+ return component.performanceMonitor.logSummary();
128
+ },
129
+ reset: function reset() {
130
+ return component.performanceMonitor.reset();
131
+ },
132
+ export: function _export() {
133
+ return component.performanceMonitor.exportData();
134
+ },
135
+ cleanup: function cleanup() {
136
+ // Add cleanup method for debugging duplicate performance monitors
137
+ if (component.cleanupDuplicatePerformanceMonitors) {
138
+ return component.cleanupDuplicatePerformanceMonitors();
139
+ } else {
140
+ console.warn('âš ī¸ cleanupDuplicatePerformanceMonitors method not available');
141
+ return 0;
142
+ }
143
+ },
144
+ help: function help() {
145
+ console.group('🔧 Performance Monitor Controls');
146
+ console.log('📊 performance3D.show() - Show performance UI');
147
+ console.log('🙈 performance3D.hide() - Hide performance UI');
148
+ console.log('🔄 performance3D.toggle() - Toggle performance UI');
149
+ console.log('🎨 performance3D.setTheme("light"|"dark") - Change UI theme');
150
+ console.log('📝 performance3D.log() - Log performance summary');
151
+ console.log('🔄 performance3D.reset() - Reset all statistics');
152
+ console.log('💾 performance3D.export() - Export performance data');
153
+ console.log('🧹 performance3D.cleanup() - Clean up duplicate performance monitors (dev)');
154
+ console.log('');
155
+ console.log('âŒ¨ī¸ Keyboard shortcuts:');
156
+ console.log(' P - Toggle performance UI');
157
+ console.log(' L - Log performance summary');
158
+ console.log(' R - Reset performance statistics');
159
+ console.groupEnd();
160
+ }
161
+ };
162
+
163
+ // Expose camera controls to global scope
164
+ window.cameraControls = {
165
+ autoRotate: {
166
+ enable: function enable() {
167
+ return _this.toggleAutoRotation(true);
168
+ },
169
+ disable: function disable() {
170
+ return _this.toggleAutoRotation(false);
171
+ },
172
+ toggle: function toggle() {
173
+ return _this.toggleAutoRotation();
174
+ },
175
+ setSpeed: function setSpeed(speed) {
176
+ if (component.controls) {
177
+ component.controls.autoRotateSpeed = speed;
178
+ console.log("Auto-rotation speed set to: ".concat(speed));
179
+ return speed;
180
+ }
181
+ }
182
+ },
183
+ help: function help() {
184
+ console.group('🎮 Camera Controls');
185
+ console.log('🔄 cameraControls.autoRotate.enable() - Enable auto-rotation');
186
+ console.log('âšī¸ cameraControls.autoRotate.disable() - Disable auto-rotation');
187
+ console.log('â¯ī¸ cameraControls.autoRotate.toggle() - Toggle auto-rotation');
188
+ console.log('âš™ī¸ cameraControls.autoRotate.setSpeed(number) - Set rotation speed');
189
+ console.log('');
190
+ console.log('âŒ¨ī¸ Keyboard shortcuts:');
191
+ console.log(' A - Toggle auto-rotation');
192
+ console.groupEnd();
193
+ }
194
+ };
195
+ console.log('🎮 Performance monitoring enabled! Type "performance3D.help()" for controls.');
196
+ console.log('đŸŽĨ Camera controls available! Type "cameraControls.help()" for options.');
197
+ }
198
+ }
199
+
200
+ /**
201
+ * Initialize loaders
202
+ */
203
+ }, {
204
+ key: "initializeLoaders",
205
+ value: function initializeLoaders() {
206
+ var component = this.sceneViewer;
207
+
208
+ // Initialize texture loader
209
+ this.textureLoader = new THREE.TextureLoader();
210
+ component.textureLoader = this.textureLoader;
211
+
212
+ // Initialize GLTF loader
213
+ this.gltfLoader = new GLTFLoader();
214
+ component.gltfLoader = this.gltfLoader;
215
+ logger.info('Texture and GLTF loaders initialized');
216
+ }
217
+
218
+ /**
219
+ * Setup orbit controls
220
+ */
221
+ }, {
222
+ key: "setupControls",
223
+ value: function setupControls() {
224
+ this.sceneViewer.controls = new OrbitControls(this.sceneViewer.camera, this.sceneViewer.renderer.domElement);
225
+ this.sceneViewer.controls.enableDamping = true;
226
+ this.sceneViewer.controls.dampingFactor = 0.05;
227
+ this.sceneViewer.controls.minDistance = 1;
228
+ this.sceneViewer.controls.maxDistance = 20;
229
+ this.sceneViewer.controls.maxPolarAngle = Math.PI / 1.5;
230
+ // Configure auto-rotation (default: enabled)
231
+ this.sceneViewer.controls.autoRotate = true;
232
+ this.sceneViewer.controls.autoRotateSpeed = 0.5; // Rotation speed (default is 1.0)
233
+
234
+ // // Add event listener to turn off auto-rotation when user interacts with controls
235
+ // component.controls.addEventListener('start', () => {
236
+ // if (component.controls.autoRotate) {
237
+ // component.controls.autoRotate = false
238
+ // logger.info('Auto-rotation disabled due to user interaction')
239
+ // }
240
+ // })
241
+
242
+ logger.info('Orbit controls initialized with auto-rotation');
243
+ }
244
+
245
+ /**
246
+ * Set default scene background
247
+ */
248
+ }, {
249
+ key: "setDefaultBackground",
250
+ value: function setDefaultBackground() {
251
+ var component = this.sceneViewer;
252
+ component.scene.background = new THREE.Color(0x88CCEE);
253
+ logger.info('Default scene background set');
254
+ }
255
+
256
+ /**
257
+ * Complete initialization workflow
258
+ */
259
+ }, {
260
+ key: "initialize",
261
+ value: (function () {
262
+ var _initialize = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2() {
263
+ return _regenerator().w(function (_context2) {
264
+ while (1) switch (_context2.n) {
265
+ case 0:
266
+ _context2.n = 1;
267
+ return this.initializeScene();
268
+ case 1:
269
+ this.initializePerformanceMonitoring();
270
+ this.initializeLoaders();
271
+ this.setupControls();
272
+ this.setDefaultBackground();
273
+ logger.info('Scene initialization completed');
274
+ case 2:
275
+ return _context2.a(2);
276
+ }
277
+ }, _callee2, this);
278
+ }));
279
+ function initialize() {
280
+ return _initialize.apply(this, arguments);
281
+ }
282
+ return initialize;
283
+ }()
284
+ /**
285
+ * Toggle camera auto-rotation
286
+ * @param {boolean} [enable] - If provided, explicitly set auto-rotation state, otherwise toggle current state
287
+ * @returns {boolean} The new auto-rotation state
288
+ */
289
+ )
290
+ }, {
291
+ key: "toggleAutoRotation",
292
+ value: function toggleAutoRotation(enable) {
293
+ var component = this.sceneViewer;
294
+ if (component.controls) {
295
+ if (enable !== undefined) {
296
+ component.controls.autoRotate = enable;
297
+ } else {
298
+ component.controls.autoRotate = !component.controls.autoRotate;
299
+ }
300
+
301
+ // When enabling auto-rotation, also clear any lingering manual control momentum
302
+ // without resetting the camera position
303
+ if (component.controls.autoRotate) {
304
+ // Cancel any existing inertia from manual drag operations
305
+ component.controls.dampingFactor = 1.0; // Temporarily increase damping to stop quickly
306
+ setTimeout(function () {
307
+ component.controls.dampingFactor = 0.05; // Restore original damping
308
+ }, 100);
309
+ }
310
+
311
+ // Make sure the changes are clearly observable in the console
312
+ logger.info("Camera auto-rotation is now ".concat(component.controls.autoRotate ? 'ENABLED' : 'DISABLED'));
313
+ console.log("\uD83D\uDD04 Camera auto-rotation ".concat(component.controls.autoRotate ? 'enabled' : 'disabled', " via SceneInitializationManager"));
314
+ return component.controls.autoRotate;
315
+ }
316
+ console.warn('âš ī¸ Could not toggle auto-rotation: controls not initialized');
317
+ return false;
318
+ }
319
+ }]);
320
+ }();
321
+
322
+ export { SceneInitializationManager };