@2112-lab/central-plant 0.1.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.
Files changed (54) hide show
  1. package/README.md +0 -0
  2. package/dist/bundle/index.js +14259 -0
  3. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +353 -0
  4. package/dist/cjs/node_modules/three/examples/jsm/controls/OrbitControls.js +1292 -0
  5. package/dist/cjs/node_modules/three/examples/jsm/controls/TransformControls.js +1543 -0
  6. package/dist/cjs/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4374 -0
  7. package/dist/cjs/node_modules/three/examples/jsm/loaders/RGBELoader.js +465 -0
  8. package/dist/cjs/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +117 -0
  9. package/dist/cjs/src/ConnectionManager.js +114 -0
  10. package/dist/cjs/src/Pathfinder.js +88 -0
  11. package/dist/cjs/src/animationManager.js +121 -0
  12. package/dist/cjs/src/componentManager.js +151 -0
  13. package/dist/cjs/src/debugLogger.js +176 -0
  14. package/dist/cjs/src/disposalManager.js +185 -0
  15. package/dist/cjs/src/environmentManager.js +1015 -0
  16. package/dist/cjs/src/hotReloadManager.js +252 -0
  17. package/dist/cjs/src/index.js +126 -0
  18. package/dist/cjs/src/keyboardControlsManager.js +206 -0
  19. package/dist/cjs/src/modelPreloader.js +360 -0
  20. package/dist/cjs/src/nameUtils.js +106 -0
  21. package/dist/cjs/src/pathfindingManager.js +321 -0
  22. package/dist/cjs/src/performanceMonitor.js +718 -0
  23. package/dist/cjs/src/sceneExportManager.js +292 -0
  24. package/dist/cjs/src/sceneInitializationManager.js +540 -0
  25. package/dist/cjs/src/sceneOperationsManager.js +560 -0
  26. package/dist/cjs/src/textureConfig.js +195 -0
  27. package/dist/cjs/src/transformControlsManager.js +851 -0
  28. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +328 -0
  29. package/dist/esm/node_modules/three/examples/jsm/controls/OrbitControls.js +1287 -0
  30. package/dist/esm/node_modules/three/examples/jsm/controls/TransformControls.js +1537 -0
  31. package/dist/esm/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4370 -0
  32. package/dist/esm/node_modules/three/examples/jsm/loaders/RGBELoader.js +461 -0
  33. package/dist/esm/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +113 -0
  34. package/dist/esm/src/ConnectionManager.js +110 -0
  35. package/dist/esm/src/Pathfinder.js +84 -0
  36. package/dist/esm/src/animationManager.js +112 -0
  37. package/dist/esm/src/componentManager.js +123 -0
  38. package/dist/esm/src/debugLogger.js +167 -0
  39. package/dist/esm/src/disposalManager.js +155 -0
  40. package/dist/esm/src/environmentManager.js +989 -0
  41. package/dist/esm/src/hotReloadManager.js +244 -0
  42. package/dist/esm/src/index.js +117 -0
  43. package/dist/esm/src/keyboardControlsManager.js +196 -0
  44. package/dist/esm/src/modelPreloader.js +337 -0
  45. package/dist/esm/src/nameUtils.js +99 -0
  46. package/dist/esm/src/pathfindingManager.js +295 -0
  47. package/dist/esm/src/performanceMonitor.js +712 -0
  48. package/dist/esm/src/sceneExportManager.js +286 -0
  49. package/dist/esm/src/sceneInitializationManager.js +513 -0
  50. package/dist/esm/src/sceneOperationsManager.js +536 -0
  51. package/dist/esm/src/textureConfig.js +168 -0
  52. package/dist/esm/src/transformControlsManager.js +827 -0
  53. package/dist/index.d.ts +259 -0
  54. package/package.json +53 -0
@@ -0,0 +1,540 @@
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 debugLogger = require('./debugLogger.js');
8
+
9
+ function _interopNamespace(e) {
10
+ if (e && e.__esModule) return e;
11
+ var n = Object.create(null);
12
+ if (e) {
13
+ Object.keys(e).forEach(function (k) {
14
+ if (k !== 'default') {
15
+ var d = Object.getOwnPropertyDescriptor(e, k);
16
+ Object.defineProperty(n, k, d.get ? d : {
17
+ enumerable: true,
18
+ get: function () { return e[k]; }
19
+ });
20
+ }
21
+ });
22
+ }
23
+ n["default"] = e;
24
+ return Object.freeze(n);
25
+ }
26
+
27
+ var THREE__namespace = /*#__PURE__*/_interopNamespace(THREE);
28
+
29
+ // These will be loaded dynamically in browser environments
30
+ var OrbitControls;
31
+ var GLTFLoader;
32
+ var PerformanceMonitor;
33
+ var PerformanceUI;
34
+
35
+ // Dynamic imports for browser compatibility
36
+ function importThreeJSDependencies() {
37
+ return _importThreeJSDependencies.apply(this, arguments);
38
+ }
39
+ function _importThreeJSDependencies() {
40
+ _importThreeJSDependencies = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee4() {
41
+ var orbitModule, customModule, gltfModule, perfModule, _t, _t3, _t4;
42
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context4) {
43
+ while (1) switch (_context4.n) {
44
+ case 0:
45
+ if (!(typeof window !== 'undefined')) {
46
+ _context4.n = 15;
47
+ break;
48
+ }
49
+ _context4.p = 1;
50
+ _context4.p = 2;
51
+ _context4.n = 3;
52
+ return Promise.resolve().then(function () { return require('../node_modules/three/examples/jsm/controls/OrbitControls.js'); });
53
+ case 3:
54
+ orbitModule = _context4.v;
55
+ OrbitControls = orbitModule.OrbitControls;
56
+ _context4.n = 9;
57
+ break;
58
+ case 4:
59
+ _context4.p = 4;
60
+ _t = _context4.v;
61
+ console.warn('OrbitControls not loaded:', _t.message);
62
+ // Fallback for OrbitControls - may be needed in some bundlers
63
+ _context4.p = 5;
64
+ if (!(typeof window.__orbitControlsCustomPath === 'string')) {
65
+ _context4.n = 7;
66
+ break;
67
+ }
68
+ _context4.n = 6;
69
+ return (function (t) { return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require(t)); }); })(window.__orbitControlsCustomPath);
70
+ case 6:
71
+ customModule = _context4.v;
72
+ OrbitControls = customModule.OrbitControls;
73
+ case 7:
74
+ _context4.n = 9;
75
+ break;
76
+ case 8:
77
+ _context4.p = 8;
78
+ _context4.v;
79
+ console.warn('Failed to load OrbitControls from custom path');
80
+ case 9:
81
+ _context4.p = 9;
82
+ _context4.n = 10;
83
+ return Promise.resolve().then(function () { return require('../node_modules/three/examples/jsm/loaders/GLTFLoader.js'); });
84
+ case 10:
85
+ gltfModule = _context4.v;
86
+ GLTFLoader = gltfModule.GLTFLoader;
87
+ _context4.n = 12;
88
+ break;
89
+ case 11:
90
+ _context4.p = 11;
91
+ _t3 = _context4.v;
92
+ console.warn('GLTFLoader not loaded:', _t3.message);
93
+ case 12:
94
+ _context4.n = 13;
95
+ return Promise.resolve().then(function () { return require('./performanceMonitor.js'); });
96
+ case 13:
97
+ perfModule = _context4.v;
98
+ PerformanceMonitor = perfModule.PerformanceMonitor;
99
+ PerformanceUI = perfModule.PerformanceUI;
100
+ _context4.n = 15;
101
+ break;
102
+ case 14:
103
+ _context4.p = 14;
104
+ _t4 = _context4.v;
105
+ console.error('Failed to load Three.js dependencies:', _t4);
106
+ case 15:
107
+ return _context4.a(2);
108
+ }
109
+ }, _callee4, null, [[9, 11], [5, 8], [2, 4], [1, 14]]);
110
+ }));
111
+ return _importThreeJSDependencies.apply(this, arguments);
112
+ }
113
+ var SceneInitializationManager = /*#__PURE__*/function () {
114
+ function SceneInitializationManager(component) {
115
+ _rollupPluginBabelHelpers.classCallCheck(this, SceneInitializationManager);
116
+ this.component = component;
117
+ this.textureLoader = null;
118
+ this.gltfLoader = null;
119
+
120
+ // Initialize dependencies
121
+ importThreeJSDependencies();
122
+ }
123
+
124
+ /**
125
+ * Initialize the Three.js scene, camera, and renderer
126
+ */
127
+ return _rollupPluginBabelHelpers.createClass(SceneInitializationManager, [{
128
+ key: "initializeScene",
129
+ value: (function () {
130
+ var _initializeScene = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee() {
131
+ var _component$$refs, _component$$refs2;
132
+ var component, containerRect, containerWidth, containerHeight;
133
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
134
+ while (1) switch (_context.n) {
135
+ case 0:
136
+ component = this.component;
137
+ if (component) {
138
+ _context.n = 1;
139
+ break;
140
+ }
141
+ debugLogger.logger.error('Cannot initialize scene: component not available');
142
+ return _context.a(2);
143
+ case 1:
144
+ // Create scene
145
+ component.scene = new THREE__namespace.Scene();
146
+
147
+ // Create camera (default values, can be updated later)
148
+ containerRect = ((_component$$refs = component.$refs) === null || _component$$refs === void 0 || (_component$$refs = _component$$refs.container) === null || _component$$refs === void 0 ? void 0 : _component$$refs.getBoundingClientRect()) || {
149
+ width: 800,
150
+ height: 600
151
+ };
152
+ containerWidth = containerRect.width;
153
+ containerHeight = containerRect.height;
154
+ component.camera = new THREE__namespace.PerspectiveCamera(50, containerWidth / containerHeight, 0.01, 1000);
155
+ component.camera.position.set(-8, 4, 9);
156
+
157
+ // Setup renderer if container exists
158
+ if (!((_component$$refs2 = component.$refs) !== null && _component$$refs2 !== void 0 && _component$$refs2.container)) {
159
+ _context.n = 2;
160
+ break;
161
+ }
162
+ _context.n = 2;
163
+ return this.setupRenderer(component.$refs.container, containerWidth, containerHeight);
164
+ case 2:
165
+ debugLogger.logger.info('Scene and camera initialized');
166
+ return _context.a(2, {
167
+ scene: component.scene,
168
+ camera: component.camera
169
+ });
170
+ }
171
+ }, _callee, this);
172
+ }));
173
+ function initializeScene() {
174
+ return _initializeScene.apply(this, arguments);
175
+ }
176
+ return initializeScene;
177
+ }()
178
+ /**
179
+ * Setup the WebGL renderer
180
+ */
181
+ )
182
+ }, {
183
+ key: "setupRenderer",
184
+ value: (function () {
185
+ var _setupRenderer = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee2(container, width, height) {
186
+ var component, containerRect;
187
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context2) {
188
+ while (1) switch (_context2.n) {
189
+ case 0:
190
+ component = this.component;
191
+ if (component) {
192
+ _context2.n = 1;
193
+ break;
194
+ }
195
+ debugLogger.logger.error('Cannot setup renderer: component not available');
196
+ return _context2.a(2, null);
197
+ case 1:
198
+ // Use provided dimensions or get from container
199
+ if (!width || !height) {
200
+ containerRect = container.getBoundingClientRect();
201
+ width = containerRect.width;
202
+ height = containerRect.height;
203
+ }
204
+
205
+ // Create renderer
206
+ component.renderer = new THREE__namespace.WebGLRenderer({
207
+ antialias: true
208
+ });
209
+ component.renderer.setSize(width, height);
210
+ component.renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
211
+ component.renderer.shadowMap.enabled = true;
212
+ component.renderer.shadowMap.type = THREE__namespace.PCFSoftShadowMap;
213
+ component.renderer.physicallyCorrectLights = true;
214
+ component.renderer.outputColorSpace = THREE__namespace.SRGBColorSpace;
215
+ component.renderer.toneMapping = THREE__namespace.LinearToneMapping;
216
+ component.renderer.toneMappingExposure = 1.5;
217
+
218
+ // Add renderer to container
219
+ container.appendChild(component.renderer.domElement);
220
+
221
+ // Setup resize handler
222
+ this.setupResizeHandler();
223
+
224
+ // Create texture and model loaders
225
+ component.textureLoader = new THREE__namespace.TextureLoader();
226
+ this.textureLoader = component.textureLoader;
227
+
228
+ // Initialize GLTF loader if available
229
+ if (!GLTFLoader) {
230
+ _context2.n = 2;
231
+ break;
232
+ }
233
+ component.gltfLoader = new GLTFLoader();
234
+ this.gltfLoader = component.gltfLoader;
235
+ _context2.n = 4;
236
+ break;
237
+ case 2:
238
+ _context2.n = 3;
239
+ return importThreeJSDependencies();
240
+ case 3:
241
+ if (GLTFLoader) {
242
+ component.gltfLoader = new GLTFLoader();
243
+ this.gltfLoader = component.gltfLoader;
244
+ }
245
+ case 4:
246
+ debugLogger.logger.info('Renderer initialized');
247
+ return _context2.a(2, component.renderer);
248
+ }
249
+ }, _callee2, this);
250
+ }));
251
+ function setupRenderer(_x, _x2, _x3) {
252
+ return _setupRenderer.apply(this, arguments);
253
+ }
254
+ return setupRenderer;
255
+ }()
256
+ /**
257
+ * Setup orbit controls
258
+ */
259
+ )
260
+ }, {
261
+ key: "setupControls",
262
+ value: function setupControls(container) {
263
+ var _this = this;
264
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
265
+ var component = this.component;
266
+ if (!component || !component.camera || !component.renderer) {
267
+ debugLogger.logger.error('Cannot setup controls: camera or renderer not available');
268
+ return null;
269
+ }
270
+
271
+ // Initialize OrbitControls if available
272
+ if (!OrbitControls) {
273
+ debugLogger.logger.info('OrbitControls not available, will try to import');
274
+ importThreeJSDependencies().then(function () {
275
+ if (OrbitControls) {
276
+ _this.setupControlsInternal(container, options);
277
+ }
278
+ });
279
+ return null;
280
+ }
281
+ return this.setupControlsInternal(container, options);
282
+ }
283
+
284
+ /**
285
+ * Internal method to setup controls after dependencies are loaded
286
+ */
287
+ }, {
288
+ key: "setupControlsInternal",
289
+ value: function setupControlsInternal(container) {
290
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
291
+ var component = this.component;
292
+ var domElement = container || component.renderer.domElement;
293
+
294
+ // Create controls
295
+ component.controls = new OrbitControls(component.camera, domElement);
296
+
297
+ // Apply options
298
+ component.controls.enableDamping = options.enableDamping !== false;
299
+ component.controls.dampingFactor = options.dampingFactor || 0.05;
300
+ component.controls.screenSpacePanning = options.screenSpacePanning !== false;
301
+ component.controls.maxPolarAngle = options.maxPolarAngle || Math.PI / 1.5;
302
+ component.controls.minDistance = options.minDistance || 2;
303
+ component.controls.maxDistance = options.maxDistance || 50;
304
+
305
+ // Additional options if provided
306
+ if (options.target) {
307
+ component.controls.target.copy(options.target);
308
+ }
309
+ if (options.autoRotate) {
310
+ component.controls.autoRotate = true;
311
+ component.controls.autoRotateSpeed = options.autoRotateSpeed || 1.0;
312
+ }
313
+ debugLogger.logger.info('Orbit controls initialized');
314
+ return component.controls;
315
+ }
316
+
317
+ /**
318
+ * Initialize performance monitoring
319
+ */
320
+ }, {
321
+ key: "initializePerformanceMonitoring",
322
+ value: (function () {
323
+ var _initializePerformanceMonitoring = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee3() {
324
+ var _component$$refs3;
325
+ var component;
326
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context3) {
327
+ while (1) switch (_context3.n) {
328
+ case 0:
329
+ component = this.component;
330
+ if (!(!component || !component.renderer)) {
331
+ _context3.n = 1;
332
+ break;
333
+ }
334
+ debugLogger.logger.error('Cannot initialize performance monitoring: renderer not available');
335
+ return _context3.a(2);
336
+ case 1:
337
+ if (PerformanceMonitor) {
338
+ _context3.n = 3;
339
+ break;
340
+ }
341
+ _context3.n = 2;
342
+ return importThreeJSDependencies();
343
+ case 2:
344
+ if (PerformanceMonitor) {
345
+ _context3.n = 3;
346
+ break;
347
+ }
348
+ debugLogger.logger.error('Performance monitoring not available');
349
+ return _context3.a(2);
350
+ case 3:
351
+ // Initialize performance monitoring
352
+ component.performanceMonitor = new PerformanceMonitor(component.renderer);
353
+ if ((_component$$refs3 = component.$refs) !== null && _component$$refs3 !== void 0 && _component$$refs3.container) {
354
+ component.performanceUI = new PerformanceUI(component.performanceMonitor, component.$refs.container, 'light');
355
+ }
356
+
357
+ // Setup performance monitoring callbacks
358
+ component.performanceMonitor.on('warning', function (warnings) {
359
+ // logger.warn('Performance warnings:', warnings);
360
+ });
361
+ component.performanceMonitor.start();
362
+ if (component.performanceUI) {
363
+ component.performanceUI.show();
364
+ }
365
+ this.exposePerformanceMonitoringGlobally();
366
+ debugLogger.logger.info('Performance monitoring initialized');
367
+ return _context3.a(2, {
368
+ monitor: component.performanceMonitor,
369
+ ui: component.performanceUI
370
+ });
371
+ }
372
+ }, _callee3, this);
373
+ }));
374
+ function initializePerformanceMonitoring() {
375
+ return _initializePerformanceMonitoring.apply(this, arguments);
376
+ }
377
+ return initializePerformanceMonitoring;
378
+ }()
379
+ /**
380
+ * Expose performance monitoring to global scope for debugging
381
+ */
382
+ )
383
+ }, {
384
+ key: "exposePerformanceMonitoringGlobally",
385
+ value: function exposePerformanceMonitoringGlobally() {
386
+ var component = this.component;
387
+ if (!component || !component.performanceMonitor) return;
388
+ if (typeof window !== 'undefined') {
389
+ window._performanceMonitor = component.performanceMonitor;
390
+ window._performanceUI = component.performanceUI;
391
+ window.performance3D = {
392
+ show: function show() {
393
+ var _component$performanc;
394
+ return (_component$performanc = component.performanceUI) === null || _component$performanc === void 0 ? void 0 : _component$performanc.show();
395
+ },
396
+ hide: function hide() {
397
+ var _component$performanc2;
398
+ return (_component$performanc2 = component.performanceUI) === null || _component$performanc2 === void 0 ? void 0 : _component$performanc2.hide();
399
+ },
400
+ toggle: function toggle() {
401
+ var _component$performanc3, _component$performanc4, _component$performanc5;
402
+ return (_component$performanc3 = component.performanceUI) !== null && _component$performanc3 !== void 0 && _component$performanc3.isVisible ? (_component$performanc4 = component.performanceUI) === null || _component$performanc4 === void 0 ? void 0 : _component$performanc4.hide() : (_component$performanc5 = component.performanceUI) === null || _component$performanc5 === void 0 ? void 0 : _component$performanc5.show();
403
+ },
404
+ setTheme: function setTheme(theme) {
405
+ var _component$performanc6;
406
+ return (_component$performanc6 = component.performanceUI) === null || _component$performanc6 === void 0 ? void 0 : _component$performanc6.setTheme(theme);
407
+ },
408
+ log: function log() {
409
+ var _component$performanc7;
410
+ return (_component$performanc7 = component.performanceMonitor) === null || _component$performanc7 === void 0 ? void 0 : _component$performanc7.logSummary();
411
+ },
412
+ reset: function reset() {
413
+ var _component$performanc8;
414
+ return (_component$performanc8 = component.performanceMonitor) === null || _component$performanc8 === void 0 ? void 0 : _component$performanc8.reset();
415
+ },
416
+ export: function _export() {
417
+ var _component$performanc9;
418
+ return (_component$performanc9 = component.performanceMonitor) === null || _component$performanc9 === void 0 ? void 0 : _component$performanc9.exportData();
419
+ },
420
+ help: function help() {
421
+ console.group('🔧 Performance Monitor Controls');
422
+ console.log('📊 performance3D.show() - Show performance UI');
423
+ console.log('🙈 performance3D.hide() - Hide performance UI');
424
+ console.log('🔄 performance3D.toggle() - Toggle performance UI');
425
+ console.log('🎨 performance3D.setTheme("light"|"dark") - Set UI theme');
426
+ console.log('📋 performance3D.log() - Log performance summary');
427
+ console.log('🔄 performance3D.reset() - Reset statistics');
428
+ console.log('💾 performance3D.export() - Export performance data');
429
+ console.log('❓ performance3D.help() - Show this help');
430
+ console.groupEnd();
431
+ }
432
+ };
433
+ debugLogger.logger.info('Performance monitoring exposed to global scope');
434
+ }
435
+ }
436
+
437
+ /**
438
+ * Setup resize handler for responsive rendering
439
+ */
440
+ }, {
441
+ key: "setupResizeHandler",
442
+ value: function setupResizeHandler() {
443
+ var _component$$refs4;
444
+ var component = this.component;
445
+ if (!component || !((_component$$refs4 = component.$refs) !== null && _component$$refs4 !== void 0 && _component$$refs4.container)) return;
446
+ var handleResize = function handleResize() {
447
+ if (!component.renderer || !component.camera) return;
448
+
449
+ // Get container dimensions
450
+ var container = component.$refs.container;
451
+ var width = container.clientWidth;
452
+ var height = container.clientHeight;
453
+
454
+ // Update camera
455
+ component.camera.aspect = width / height;
456
+ component.camera.updateProjectionMatrix();
457
+
458
+ // Update renderer
459
+ component.renderer.setSize(width, height);
460
+ component.renderer.setPixelRatio(Math.min(window.devicePixelRatio, 2));
461
+ };
462
+
463
+ // Initial setup
464
+ handleResize();
465
+
466
+ // Add event listener
467
+ window.addEventListener('resize', handleResize);
468
+
469
+ // Store resize handler for cleanup
470
+ this._resizeHandler = handleResize;
471
+ debugLogger.logger.info('Resize handler initialized');
472
+ }
473
+
474
+ /**
475
+ * Cleanup resize handler
476
+ */
477
+ }, {
478
+ key: "cleanupResizeHandler",
479
+ value: function cleanupResizeHandler() {
480
+ if (this._resizeHandler) {
481
+ window.removeEventListener('resize', this._resizeHandler);
482
+ this._resizeHandler = null;
483
+ }
484
+ }
485
+ }]);
486
+ }();
487
+
488
+ // Create a singleton instance
489
+ var sceneInitializationManager = null;
490
+
491
+ /**
492
+ * Get the global scene initialization manager instance
493
+ */
494
+ function getSceneInitializationManager() {
495
+ var component = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
496
+ if (!sceneInitializationManager || component && sceneInitializationManager.component !== component) {
497
+ sceneInitializationManager = new SceneInitializationManager(component);
498
+ }
499
+ return sceneInitializationManager;
500
+ }
501
+
502
+ // Common initialization function
503
+ function setupScene(_x4, _x5) {
504
+ return _setupScene.apply(this, arguments);
505
+ }
506
+ function _setupScene() {
507
+ _setupScene = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee5(component, container) {
508
+ var manager;
509
+ return _rollupPluginBabelHelpers.regenerator().w(function (_context5) {
510
+ while (1) switch (_context5.n) {
511
+ case 0:
512
+ manager = getSceneInitializationManager(component);
513
+ _context5.n = 1;
514
+ return manager.initializeScene();
515
+ case 1:
516
+ if (!container) {
517
+ _context5.n = 3;
518
+ break;
519
+ }
520
+ _context5.n = 2;
521
+ return manager.setupRenderer(container);
522
+ case 2:
523
+ manager.setupControls(container);
524
+ case 3:
525
+ return _context5.a(2, manager);
526
+ }
527
+ }, _callee5);
528
+ }));
529
+ return _setupScene.apply(this, arguments);
530
+ }
531
+ var sceneInitializationManager$1 = {
532
+ SceneInitializationManager: SceneInitializationManager,
533
+ getSceneInitializationManager: getSceneInitializationManager,
534
+ setupScene: setupScene
535
+ };
536
+
537
+ exports.SceneInitializationManager = SceneInitializationManager;
538
+ exports["default"] = sceneInitializationManager$1;
539
+ exports.getSceneInitializationManager = getSceneInitializationManager;
540
+ exports.setupScene = setupScene;