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