@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.
Files changed (87) hide show
  1. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +432 -1
  2. package/dist/cjs/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1448 -1
  3. package/dist/cjs/node_modules/three/examples/jsm/controls/OrbitControls.js +1853 -1
  4. package/dist/cjs/node_modules/three/examples/jsm/exporters/GLTFExporter.js +3537 -1
  5. package/dist/cjs/node_modules/three/examples/jsm/exporters/OBJExporter.js +305 -1
  6. package/dist/cjs/node_modules/three/examples/jsm/exporters/PLYExporter.js +542 -1
  7. package/dist/cjs/node_modules/three/examples/jsm/exporters/STLExporter.js +218 -1
  8. package/dist/cjs/node_modules/three/examples/jsm/loaders/DRACOLoader.js +683 -1
  9. package/dist/cjs/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4811 -1
  10. package/dist/cjs/node_modules/three/examples/jsm/loaders/RGBELoader.js +480 -1
  11. package/dist/cjs/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +309 -1
  12. package/dist/cjs/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +120 -1
  13. package/dist/cjs/src/analysis/analysis.js +560 -1
  14. package/dist/cjs/src/analysis/testing.js +958 -1
  15. package/dist/cjs/src/core/centralPlant.js +1149 -1
  16. package/dist/cjs/src/core/debugLogger.js +175 -1
  17. package/dist/cjs/src/core/mathUtils.js +574 -1
  18. package/dist/cjs/src/core/nameUtils.js +93 -1
  19. package/dist/cjs/src/data/export.js +716 -1
  20. package/dist/cjs/src/data/import.js +380 -1
  21. package/dist/cjs/src/data/numerics.js +522 -1
  22. package/dist/cjs/src/helpers/sceneHelper.js +572 -1
  23. package/dist/cjs/src/index.js +69 -1
  24. package/dist/cjs/src/managers/components/animationManager.js +123 -1
  25. package/dist/cjs/src/managers/components/componentManager.js +332 -1
  26. package/dist/cjs/src/managers/components/pathfindingManager.js +1441 -1
  27. package/dist/cjs/src/managers/controls/TransformControls.js +1063 -1
  28. package/dist/cjs/src/managers/controls/cameraControlsManager.js +79 -1
  29. package/dist/cjs/src/managers/controls/dragDropManager.js +1026 -1
  30. package/dist/cjs/src/managers/controls/keyboardControlsManager.js +395 -1
  31. package/dist/cjs/src/managers/controls/transformControlsManager.js +1807 -1
  32. package/dist/cjs/src/managers/environment/environmentManager.js +714 -1
  33. package/dist/cjs/src/managers/environment/textureConfig.js +229 -1
  34. package/dist/cjs/src/managers/scene/sceneExportManager.js +264 -1
  35. package/dist/cjs/src/managers/scene/sceneInitializationManager.js +346 -1
  36. package/dist/cjs/src/managers/scene/sceneOperationsManager.js +1509 -1
  37. package/dist/cjs/src/managers/scene/sceneTooltipsManager.js +661 -1
  38. package/dist/cjs/src/managers/system/disposalManager.js +444 -1
  39. package/dist/cjs/src/managers/system/hotReloadManager.js +291 -1
  40. package/dist/cjs/src/managers/system/performanceMonitor.js +863 -1
  41. package/dist/cjs/src/rendering/modelPreloader.js +369 -1
  42. package/dist/cjs/src/rendering/rendering2D.js +631 -1
  43. package/dist/cjs/src/rendering/rendering3D.js +685 -1
  44. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +396 -1
  45. package/dist/esm/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1444 -1
  46. package/dist/esm/node_modules/three/examples/jsm/controls/OrbitControls.js +1849 -1
  47. package/dist/esm/node_modules/three/examples/jsm/exporters/GLTFExporter.js +3533 -1
  48. package/dist/esm/node_modules/three/examples/jsm/exporters/OBJExporter.js +301 -1
  49. package/dist/esm/node_modules/three/examples/jsm/exporters/PLYExporter.js +538 -1
  50. package/dist/esm/node_modules/three/examples/jsm/exporters/STLExporter.js +214 -1
  51. package/dist/esm/node_modules/three/examples/jsm/loaders/DRACOLoader.js +679 -1
  52. package/dist/esm/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4807 -1
  53. package/dist/esm/node_modules/three/examples/jsm/loaders/RGBELoader.js +476 -1
  54. package/dist/esm/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +304 -1
  55. package/dist/esm/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +116 -1
  56. package/dist/esm/src/analysis/analysis.js +536 -1
  57. package/dist/esm/src/analysis/testing.js +954 -1
  58. package/dist/esm/src/core/centralPlant.js +1144 -1
  59. package/dist/esm/src/core/debugLogger.js +167 -1
  60. package/dist/esm/src/core/mathUtils.js +570 -1
  61. package/dist/esm/src/core/nameUtils.js +87 -1
  62. package/dist/esm/src/data/export.js +712 -1
  63. package/dist/esm/src/data/import.js +356 -1
  64. package/dist/esm/src/data/numerics.js +518 -1
  65. package/dist/esm/src/helpers/sceneHelper.js +547 -1
  66. package/dist/esm/src/index.js +35 -1
  67. package/dist/esm/src/managers/components/animationManager.js +119 -1
  68. package/dist/esm/src/managers/components/componentManager.js +328 -1
  69. package/dist/esm/src/managers/components/pathfindingManager.js +1417 -1
  70. package/dist/esm/src/managers/controls/TransformControls.js +1057 -1
  71. package/dist/esm/src/managers/controls/cameraControlsManager.js +75 -1
  72. package/dist/esm/src/managers/controls/dragDropManager.js +1002 -1
  73. package/dist/esm/src/managers/controls/keyboardControlsManager.js +371 -1
  74. package/dist/esm/src/managers/controls/transformControlsManager.js +1782 -1
  75. package/dist/esm/src/managers/environment/environmentManager.js +690 -1
  76. package/dist/esm/src/managers/environment/textureConfig.js +202 -1
  77. package/dist/esm/src/managers/scene/sceneExportManager.js +260 -1
  78. package/dist/esm/src/managers/scene/sceneInitializationManager.js +322 -1
  79. package/dist/esm/src/managers/scene/sceneOperationsManager.js +1485 -1
  80. package/dist/esm/src/managers/scene/sceneTooltipsManager.js +637 -1
  81. package/dist/esm/src/managers/system/disposalManager.js +440 -1
  82. package/dist/esm/src/managers/system/hotReloadManager.js +287 -1
  83. package/dist/esm/src/managers/system/performanceMonitor.js +858 -1
  84. package/dist/esm/src/rendering/modelPreloader.js +364 -1
  85. package/dist/esm/src/rendering/rendering2D.js +627 -1
  86. package/dist/esm/src/rendering/rendering3D.js +661 -1
  87. package/package.json +1 -1
@@ -1 +1,572 @@
1
- "use strict";Object.defineProperty(exports,"t",{value:!0});var e=require("../../_virtual/_rollupPluginBabelHelpers.js"),t=require("three"),i=require("../core/nameUtils.js");function n(e){if(e&&e.t)return e;var t=Object.create(null);return e&&Object.keys(e).forEach(function(i){if("default"!==i){var n=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(t,i,n.get?n:{enumerable:!0,get:function(){return e[i]}})}}),t.default=e,Object.freeze(t)}var s=n(t),o=function(){return e.createClass(function t(){var i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.classCallCheck(this,t),this.scene=i.scene||null,this.camera=i.camera||null,this.renderer=i.renderer||null,this.controls=i.controls||null,this.transformManager=i.transformManager||null,this.componentManager=i.componentManager||null,this.pathfindingManager=i.pathfindingManager||null,this.currentSceneData=i.currentSceneData||null,this.logger=i.logger||console,this.isInitialized=!1,this.selectedObject=null,this.sceneObjects=[],this.logger.info("๐Ÿ”ง SceneHelper initialized")},[{key:"initialize",value:function(e){this.scene=e.scene,this.camera=e.camera,this.renderer=e.renderer,this.controls=e.controls,this.transformManager=e.transformManager,this.componentManager=e.componentManager,this.pathfindingManager=e.pathfindingManager,this.currentSceneData=e.currentSceneData,this.isInitialized=!0,this.logger.info("โœ… SceneHelper initialized with scene components")}},{key:"updateSceneData",value:function(e){this.currentSceneData=e}},{key:"isReady",value:function(){return this.isInitialized&&this.scene&&this.camera&&this.renderer}},{key:"getSceneObjects",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.scene)return this.logger.warn("โš ๏ธ Scene not available for object retrieval"),[];var n=t.includeComponents,s=void 0===n||n,o=t.includeConnectors,r=void 0===o||o,l=t.includeGateways,u=void 0===l||l,a=t.includeHelpers,c=void 0!==a&&a,h=t.includeInvisible,v=void 0!==h&&h,f=t.componentTypesFilter,d=void 0===f?null:f,b=[];return this.scene.traverse(function(t){if(t.userData){var n=t.userData.componentType,o=t.visible;(v||o)&&("component"!==n||s)&&("connector"!==n||r)&&("gateway"!==n||u)&&("helper"!==n||c)&&(d&&Array.isArray(d)&&!d.includes(n)||t.name&&(t.name.includes("helper")||t.name.includes("Helper")||t.name.includes("controls")||"CameraGimbal"===t.name||"GridHelper"===t.type||"AxesHelper"===t.type)||b.push({uuid:i.getHardcodedUuid(t),name:t.name||"Unnamed Object",type:t.type,object:t,componentType:n,position:t.position.clone(),rotation:t.rotation.clone(),scale:t.scale.clone(),visible:o,userData:e.objectSpread2({},t.userData)}))}}),b}},{key:"getSceneObjectsHierarchy",value:function(){if(!this.scene)return this.logger.warn("โš ๏ธ Scene not available for hierarchy retrieval"),[];var e=function(t){var n,s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(t.name&&(t.name.includes("helper")||t.name.includes("Helper")||t.name.includes("controls")||"CameraGimbal"===t.name)||"GridHelper"===t.type||"AxesHelper"===t.type)return null;var o=null===(n=t.userData)||void 0===n?void 0:n.componentType;if(!("Scene"===t.type||"component"===o||"connector"===o||"gateway"===o)&&"Scene"!==t.type)return null;var r={uuid:i.getHardcodedUuid(t),name:t.name||"Unnamed Object",type:t.type,object:t,componentType:o||"other",level:s,visible:t.visible,children:[]};return t.children&&t.children.length>0&&t.children.forEach(function(t){var i=e(t,s+1);i&&r.children.push(i)}),r},t=[];return this.scene.children&&this.scene.children.length>0&&this.scene.children.forEach(function(i){var n=e(i,0);n&&t.push(n)}),t}},{key:"findObjectByUuid",value:function(e){if(!this.scene||!e)return null;var t=null;return this.scene.traverse(function(n){i.getHardcodedUuid(n)!==e||(t=n)}),t}},{key:"findObjectsByName",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(!this.scene||!e)return[];var i=[];return this.scene.traverse(function(n){n.name&&((t?n.name===e:n.name.toLowerCase().includes(e.toLowerCase()))&&i.push(n))}),i}},{key:"findObjectsByComponentType",value:function(e){if(!this.scene||!e)return[];var t=[];return this.scene.traverse(function(i){var n;(null===(n=i.userData)||void 0===n?void 0:n.componentType)===e&&t.push(i)}),t}},{key:"isSelectableObject",value:function(e){var t;if(!e||!e.parent)return!1;var i=null===(t=e.userData)||void 0===t?void 0:t.componentType,n="component"===i,s="connector"===i,o="gateway"===i;return(e.isMesh||e.isObject3D)&&e.visible&&(n||s||o)}},{key:"selectObject",value:function(e){return e&&this.isSelectableObject(e)?(this.selectedObject=e,this.transformManager&&this.transformManager.selectObject(e),this.logger.info("โœ… Object selected: ".concat(e.name," (").concat(e.uuid,")")),!0):(this.logger.warn("โš ๏ธ Cannot select invalid object"),!1)}},{key:"deselectObject",value:function(){this.transformManager&&this.transformManager.deselectObject(),this.selectedObject=null,this.logger.info("โœ… Object deselected")}},{key:"getSelectedObject",value:function(){return this.selectedObject}},{key:"getSelectedTransform",value:function(){return this.transformManager&&this.selectedObject?this.transformManager.getTransformData():null}},{key:"focusOnObject",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(e&&this.camera&&this.controls){var i=t.distance,n=void 0===i?10:i,o=t.animate,r=void 0===o||o,l=t.duration,u=void 0===l?1e3:l,a=new s.Vector3;e.getWorldPosition(a);var c=a.clone().add(new s.Vector3(n,n,n));r&&this.controls.transitionTo?this.controls.transitionTo(c,a,u):(this.camera.position.copy(c),this.camera.lookAt(a),this.controls.target&&(this.controls.target.copy(a),this.controls.update())),this.logger.info("๐ŸŽฅ Camera focused on object: ".concat(e.name))}else this.logger.warn("โš ๏ธ Cannot focus on object: missing components")}},{key:"fitAllObjectsInView",value:function(){if(this.camera&&this.controls){var e=new s.Box3,t=this.getSceneObjects({includeHelpers:!1});if(0!==t.length){t.forEach(function(t){var i=t.object;e.expandByObject(i)});var i=e.getCenter(new s.Vector3),n=e.getSize(new s.Vector3),o=Math.max(n.x,n.y,n.z)/(2*Math.tan(Math.PI*this.camera.fov/360));this.camera.position.copy(i),this.camera.position.z+=1.5*o,this.controls.target&&(this.controls.target.copy(i),this.controls.update()),this.logger.info("๐ŸŽฅ Camera fitted to ".concat(t.length," objects"))}else this.logger.warn("โš ๏ธ No objects to fit in view")}else this.logger.warn("โš ๏ธ Cannot fit objects in view: missing camera or controls")}},{key:"getComponentsWithDimensions",value:function(){if(!this.currentSceneData)return[];var e=[];return this.scene.traverse(function(t){t.userData&&"component"===t.userData.componentType&&t.userData.dimensions&&e.push({name:t.name||"Unnamed Component",uuid:i.getHardcodedUuid(t),position:t.position.clone(),rotation:t.rotation.clone(),dimensions:t.userData.dimensions,boundingBox:t.userData.adaptedBoundingBox,libraryId:t.userData.libraryId,object:t})}),e}},{key:"getSceneStats",value:function(){if(!this.scene)return{};var e={totalObjects:0,components:0,connectors:0,gateways:0,meshes:0,materials:0,textures:0,lights:0,cameras:0};return this.scene.traverse(function(t){var i,n,s;e.totalObjects++,"component"===(null===(i=t.userData)||void 0===i?void 0:i.componentType)&&e.components++,"connector"===(null===(n=t.userData)||void 0===n?void 0:n.componentType)&&e.connectors++,"gateway"===(null===(s=t.userData)||void 0===s?void 0:s.componentType)&&e.gateways++,t.isMesh&&e.meshes++,t.isLight&&e.lights++,t.isCamera&&e.cameras++,t.material&&e.materials++}),e}},{key:"debugSceneInfo",value:function(){var e,t=this.getSceneStats(),i=this.getSceneObjects();this.logger.info("๐Ÿ” Scene Debug Information:"),this.logger.info(" Statistics:",t),this.logger.info(" Objects:",i.length),this.logger.info(" Selected:",(null===(e=this.selectedObject)||void 0===e?void 0:e.name)||"None"),this.logger.info(" Scene Data:",this.currentSceneData?"Available":"Not Available")}},{key:"hasVisibleObjects",value:function(){var e=this;if(!this.scene)return!1;var t=!1;return this.scene.traverse(function(i){var n;i.visible&&null!==(n=i.userData)&&void 0!==n&&n.componentType&&i!==e.scene&&(t=!0)}),t}},{key:"dispose",value:function(){this.scene=null,this.camera=null,this.renderer=null,this.controls=null,this.transformManager=null,this.componentManager=null,this.pathfindingManager=null,this.currentSceneData=null,this.selectedObject=null,this.sceneObjects=[],this.isInitialized=!1,this.logger.info("๐Ÿงน SceneHelper disposed")}}])}();exports.SceneHelper=o,exports.default=o;
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 nameUtils = require('../core/nameUtils.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
+ var SceneHelper = /*#__PURE__*/function () {
30
+ function SceneHelper() {
31
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
32
+ _rollupPluginBabelHelpers.classCallCheck(this, SceneHelper);
33
+ // Core Three.js references
34
+ this.scene = options.scene || null;
35
+ this.camera = options.camera || null;
36
+ this.renderer = options.renderer || null;
37
+ this.controls = options.controls || null;
38
+
39
+ // Manager references
40
+ this.transformManager = options.transformManager || null;
41
+ this.componentManager = options.componentManager || null;
42
+ this.pathfindingManager = options.pathfindingManager || null;
43
+
44
+ // Scene data
45
+ this.currentSceneData = options.currentSceneData || null;
46
+
47
+ // Logger
48
+ this.logger = options.logger || console;
49
+
50
+ // Initialize state
51
+ this.isInitialized = false;
52
+ this.selectedObject = null;
53
+ this.sceneObjects = [];
54
+ this.logger.info('๐Ÿ”ง SceneHelper initialized');
55
+ }
56
+
57
+ /**
58
+ * Initialize the scene helper with Three.js components
59
+ * @param {Object} components - Object containing scene, camera, renderer, etc.
60
+ */
61
+ return _rollupPluginBabelHelpers.createClass(SceneHelper, [{
62
+ key: "initialize",
63
+ value: function initialize(components) {
64
+ this.scene = components.scene;
65
+ this.camera = components.camera;
66
+ this.renderer = components.renderer;
67
+ this.controls = components.controls;
68
+ this.transformManager = components.transformManager;
69
+ this.componentManager = components.componentManager;
70
+ this.pathfindingManager = components.pathfindingManager;
71
+ this.currentSceneData = components.currentSceneData;
72
+ this.isInitialized = true;
73
+ this.logger.info('โœ… SceneHelper initialized with scene components');
74
+ }
75
+
76
+ /**
77
+ * Update scene data reference
78
+ * @param {Object} sceneData - Current scene data
79
+ */
80
+ }, {
81
+ key: "updateSceneData",
82
+ value: function updateSceneData(sceneData) {
83
+ this.currentSceneData = sceneData;
84
+ }
85
+
86
+ /**
87
+ * Check if the scene helper is properly initialized
88
+ * @returns {boolean} True if initialized
89
+ */
90
+ }, {
91
+ key: "isReady",
92
+ value: function isReady() {
93
+ return this.isInitialized && this.scene && this.camera && this.renderer;
94
+ }
95
+
96
+ // ===== SCENE OBJECT OPERATIONS =====
97
+
98
+ /**
99
+ * Get all scene objects with filtering options
100
+ * @param {Object} options - Filtering options
101
+ * @returns {Array} Array of scene objects
102
+ */
103
+ }, {
104
+ key: "getSceneObjects",
105
+ value: function getSceneObjects() {
106
+ var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
107
+ if (!this.scene) {
108
+ this.logger.warn('โš ๏ธ Scene not available for object retrieval');
109
+ return [];
110
+ }
111
+ var _options$includeCompo = options.includeComponents,
112
+ includeComponents = _options$includeCompo === void 0 ? true : _options$includeCompo,
113
+ _options$includeConne = options.includeConnectors,
114
+ includeConnectors = _options$includeConne === void 0 ? true : _options$includeConne,
115
+ _options$includeGatew = options.includeGateways,
116
+ includeGateways = _options$includeGatew === void 0 ? true : _options$includeGatew,
117
+ _options$includeHelpe = options.includeHelpers,
118
+ includeHelpers = _options$includeHelpe === void 0 ? false : _options$includeHelpe,
119
+ _options$includeInvis = options.includeInvisible,
120
+ includeInvisible = _options$includeInvis === void 0 ? false : _options$includeInvis,
121
+ _options$componentTyp = options.componentTypesFilter,
122
+ componentTypesFilter = _options$componentTyp === void 0 ? null : _options$componentTyp;
123
+ var objects = [];
124
+ this.scene.traverse(function (object) {
125
+ // Skip objects without valid userData
126
+ if (!object.userData) return;
127
+ var componentType = object.userData.componentType;
128
+ var isVisible = object.visible;
129
+
130
+ // Apply visibility filter
131
+ if (!includeInvisible && !isVisible) return;
132
+
133
+ // Apply component type filters
134
+ if (componentType === 'component' && !includeComponents) return;
135
+ if (componentType === 'connector' && !includeConnectors) return;
136
+ if (componentType === 'gateway' && !includeGateways) return;
137
+ if (componentType === 'helper' && !includeHelpers) return;
138
+
139
+ // Apply specific component types filter
140
+ if (componentTypesFilter && Array.isArray(componentTypesFilter)) {
141
+ if (!componentTypesFilter.includes(componentType)) return;
142
+ }
143
+
144
+ // Skip internal objects and helpers by name
145
+ if (object.name && (object.name.includes('helper') || object.name.includes('Helper') || object.name.includes('controls') || object.name === 'CameraGimbal' || object.type === 'GridHelper' || object.type === 'AxesHelper')) {
146
+ return;
147
+ }
148
+ objects.push({
149
+ uuid: nameUtils.getHardcodedUuid(object),
150
+ name: object.name || 'Unnamed Object',
151
+ type: object.type,
152
+ object: object,
153
+ componentType: componentType,
154
+ position: object.position.clone(),
155
+ rotation: object.rotation.clone(),
156
+ scale: object.scale.clone(),
157
+ visible: isVisible,
158
+ userData: _rollupPluginBabelHelpers.objectSpread2({}, object.userData)
159
+ });
160
+ });
161
+ return objects;
162
+ }
163
+
164
+ /**
165
+ * Get scene objects in a hierarchical structure
166
+ * @param {Object} options - Filtering options
167
+ * @returns {Array} Hierarchical array of scene objects
168
+ */
169
+ }, {
170
+ key: "getSceneObjectsHierarchy",
171
+ value: function getSceneObjectsHierarchy() {
172
+ if (!this.scene) {
173
+ this.logger.warn('โš ๏ธ Scene not available for hierarchy retrieval');
174
+ return [];
175
+ }
176
+ var _createHierarchy = function createHierarchy(object) {
177
+ var _object$userData;
178
+ var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
179
+ // Skip internal objects and helpers
180
+ if (object.name && (object.name.includes('helper') || object.name.includes('Helper') || object.name.includes('controls') || object.name === 'CameraGimbal') || object.type === 'GridHelper' || object.type === 'AxesHelper') {
181
+ return null;
182
+ }
183
+ var componentType = (_object$userData = object.userData) === null || _object$userData === void 0 ? void 0 : _object$userData.componentType;
184
+ var shouldInclude = object.type === 'Scene' || componentType === 'component' || componentType === 'connector' || componentType === 'gateway';
185
+ if (!shouldInclude && object.type !== 'Scene') {
186
+ return null;
187
+ }
188
+ var hierarchyItem = {
189
+ uuid: nameUtils.getHardcodedUuid(object),
190
+ name: object.name || 'Unnamed Object',
191
+ type: object.type,
192
+ object: object,
193
+ componentType: componentType || 'other',
194
+ level: level,
195
+ visible: object.visible,
196
+ children: []
197
+ };
198
+
199
+ // Process children
200
+ if (object.children && object.children.length > 0) {
201
+ object.children.forEach(function (child) {
202
+ var childItem = _createHierarchy(child, level + 1);
203
+ if (childItem) {
204
+ hierarchyItem.children.push(childItem);
205
+ }
206
+ });
207
+ }
208
+ return hierarchyItem;
209
+ };
210
+
211
+ // Start from scene children to avoid including the scene root
212
+ var hierarchy = [];
213
+ if (this.scene.children && this.scene.children.length > 0) {
214
+ this.scene.children.forEach(function (child) {
215
+ var childItem = _createHierarchy(child, 0);
216
+ if (childItem) {
217
+ hierarchy.push(childItem);
218
+ }
219
+ });
220
+ }
221
+ return hierarchy;
222
+ }
223
+
224
+ /**
225
+ * Find an object in the scene by UUID
226
+ * @param {string} uuid - Object UUID to find
227
+ * @returns {Object|null} Found object or null
228
+ */
229
+ }, {
230
+ key: "findObjectByUuid",
231
+ value: function findObjectByUuid(uuid) {
232
+ if (!this.scene || !uuid) return null;
233
+ var foundObject = null;
234
+ this.scene.traverse(function (object) {
235
+ if (nameUtils.getHardcodedUuid(object) === uuid) {
236
+ foundObject = object;
237
+ return; // Stop traversal
238
+ }
239
+ });
240
+ return foundObject;
241
+ }
242
+
243
+ /**
244
+ * Find objects by name (supports partial matching)
245
+ * @param {string} name - Object name to search for
246
+ * @param {boolean} exactMatch - Whether to use exact matching
247
+ * @returns {Array} Array of matching objects
248
+ */
249
+ }, {
250
+ key: "findObjectsByName",
251
+ value: function findObjectsByName(name) {
252
+ var exactMatch = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
253
+ if (!this.scene || !name) return [];
254
+ var foundObjects = [];
255
+ this.scene.traverse(function (object) {
256
+ if (object.name) {
257
+ var matches = exactMatch ? object.name === name : object.name.toLowerCase().includes(name.toLowerCase());
258
+ if (matches) {
259
+ foundObjects.push(object);
260
+ }
261
+ }
262
+ });
263
+ return foundObjects;
264
+ }
265
+
266
+ /**
267
+ * Find objects by component type
268
+ * @param {string} componentType - Component type to search for
269
+ * @returns {Array} Array of matching objects
270
+ */
271
+ }, {
272
+ key: "findObjectsByComponentType",
273
+ value: function findObjectsByComponentType(componentType) {
274
+ if (!this.scene || !componentType) return [];
275
+ var foundObjects = [];
276
+ this.scene.traverse(function (object) {
277
+ var _object$userData2;
278
+ if (((_object$userData2 = object.userData) === null || _object$userData2 === void 0 ? void 0 : _object$userData2.componentType) === componentType) {
279
+ foundObjects.push(object);
280
+ }
281
+ });
282
+ return foundObjects;
283
+ }
284
+
285
+ // ===== OBJECT SELECTION AND TRANSFORM =====
286
+
287
+ /**
288
+ * Check if an object is selectable for transformation
289
+ * @param {Object} object - Three.js object to check
290
+ * @returns {boolean} True if object can be selected
291
+ */
292
+ }, {
293
+ key: "isSelectableObject",
294
+ value: function isSelectableObject(object) {
295
+ var _object$userData3;
296
+ if (!object || !object.parent) return false;
297
+
298
+ // Check for different component types
299
+ var componentType = (_object$userData3 = object.userData) === null || _object$userData3 === void 0 ? void 0 : _object$userData3.componentType;
300
+ var isComponent = componentType === 'component';
301
+ var isConnector = componentType === 'connector';
302
+ var isGateway = componentType === 'gateway';
303
+
304
+ // Check if it's a valid mesh or object3D
305
+ var isValidType = (object.isMesh || object.isObject3D) && object.visible;
306
+ return isValidType && (isComponent || isConnector || isGateway);
307
+ }
308
+
309
+ /**
310
+ * Select an object for transformation
311
+ * @param {Object} object - Three.js object to select
312
+ * @returns {boolean} True if selection was successful
313
+ */
314
+ }, {
315
+ key: "selectObject",
316
+ value: function selectObject(object) {
317
+ if (!object || !this.isSelectableObject(object)) {
318
+ this.logger.warn('โš ๏ธ Cannot select invalid object');
319
+ return false;
320
+ }
321
+ this.selectedObject = object;
322
+
323
+ // Use transform manager if available
324
+ if (this.transformManager) {
325
+ this.transformManager.selectObject(object);
326
+ }
327
+ this.logger.info("\u2705 Object selected: ".concat(object.name, " (").concat(object.uuid, ")"));
328
+ return true;
329
+ }
330
+
331
+ /**
332
+ * Deselect the currently selected object
333
+ */
334
+ }, {
335
+ key: "deselectObject",
336
+ value: function deselectObject() {
337
+ if (this.transformManager) {
338
+ this.transformManager.deselectObject();
339
+ }
340
+ this.selectedObject = null;
341
+ this.logger.info('โœ… Object deselected');
342
+ }
343
+
344
+ /**
345
+ * Get the currently selected object
346
+ * @returns {Object|null} Selected object or null
347
+ */
348
+ }, {
349
+ key: "getSelectedObject",
350
+ value: function getSelectedObject() {
351
+ return this.selectedObject;
352
+ }
353
+
354
+ /**
355
+ * Get transform data for the selected object
356
+ * @returns {Object|null} Transform data or null
357
+ */
358
+ }, {
359
+ key: "getSelectedTransform",
360
+ value: function getSelectedTransform() {
361
+ if (!this.transformManager || !this.selectedObject) return null;
362
+ return this.transformManager.getTransformData();
363
+ }
364
+
365
+ // ===== CAMERA AND VIEWPORT OPERATIONS =====
366
+
367
+ /**
368
+ * Focus camera on an object
369
+ * @param {Object} object - Three.js object to focus on
370
+ * @param {Object} options - Focus options
371
+ */
372
+ }, {
373
+ key: "focusOnObject",
374
+ value: function focusOnObject(object) {
375
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
376
+ if (!object || !this.camera || !this.controls) {
377
+ this.logger.warn('โš ๏ธ Cannot focus on object: missing components');
378
+ return;
379
+ }
380
+ var _options$distance = options.distance,
381
+ distance = _options$distance === void 0 ? 10 : _options$distance,
382
+ _options$animate = options.animate,
383
+ animate = _options$animate === void 0 ? true : _options$animate,
384
+ _options$duration = options.duration,
385
+ duration = _options$duration === void 0 ? 1000 : _options$duration;
386
+
387
+ // Get object world position
388
+ var objectPosition = new THREE__namespace.Vector3();
389
+ object.getWorldPosition(objectPosition);
390
+
391
+ // Calculate camera position
392
+ var cameraPosition = objectPosition.clone().add(new THREE__namespace.Vector3(distance, distance, distance));
393
+ if (animate && this.controls.transitionTo) {
394
+ // Animate camera transition if supported
395
+ this.controls.transitionTo(cameraPosition, objectPosition, duration);
396
+ } else {
397
+ // Immediate camera positioning
398
+ this.camera.position.copy(cameraPosition);
399
+ this.camera.lookAt(objectPosition);
400
+ if (this.controls.target) {
401
+ this.controls.target.copy(objectPosition);
402
+ this.controls.update();
403
+ }
404
+ }
405
+ this.logger.info("\uD83C\uDFA5 Camera focused on object: ".concat(object.name));
406
+ }
407
+
408
+ /**
409
+ * Fit all objects in camera view
410
+ */
411
+ }, {
412
+ key: "fitAllObjectsInView",
413
+ value: function fitAllObjectsInView() {
414
+ if (!this.camera || !this.controls) {
415
+ this.logger.warn('โš ๏ธ Cannot fit objects in view: missing camera or controls');
416
+ return;
417
+ }
418
+ var box = new THREE__namespace.Box3();
419
+ var objects = this.getSceneObjects({
420
+ includeHelpers: false
421
+ });
422
+ if (objects.length === 0) {
423
+ this.logger.warn('โš ๏ธ No objects to fit in view');
424
+ return;
425
+ }
426
+
427
+ // Calculate bounding box of all objects
428
+ objects.forEach(function (_ref) {
429
+ var object = _ref.object;
430
+ box.expandByObject(object);
431
+ });
432
+
433
+ // Calculate center and size
434
+ var center = box.getCenter(new THREE__namespace.Vector3());
435
+ var size = box.getSize(new THREE__namespace.Vector3());
436
+
437
+ // Calculate distance needed to fit all objects
438
+ var maxDim = Math.max(size.x, size.y, size.z);
439
+ var distance = maxDim / (2 * Math.tan(Math.PI * this.camera.fov / 360));
440
+
441
+ // Position camera
442
+ this.camera.position.copy(center);
443
+ this.camera.position.z += distance * 1.5;
444
+ if (this.controls.target) {
445
+ this.controls.target.copy(center);
446
+ this.controls.update();
447
+ }
448
+ this.logger.info("\uD83C\uDFA5 Camera fitted to ".concat(objects.length, " objects"));
449
+ }
450
+
451
+ // ===== SCENE DATA OPERATIONS =====
452
+
453
+ /**
454
+ * Get components with dimensions from scene data
455
+ * @returns {Array} Array of components with dimension data
456
+ */
457
+ }, {
458
+ key: "getComponentsWithDimensions",
459
+ value: function getComponentsWithDimensions() {
460
+ if (!this.currentSceneData) return [];
461
+ var components = [];
462
+ this.scene.traverse(function (object) {
463
+ if (object.userData && object.userData.componentType === 'component' && object.userData.dimensions) {
464
+ components.push({
465
+ name: object.name || 'Unnamed Component',
466
+ uuid: nameUtils.getHardcodedUuid(object),
467
+ position: object.position.clone(),
468
+ rotation: object.rotation.clone(),
469
+ dimensions: object.userData.dimensions,
470
+ boundingBox: object.userData.adaptedBoundingBox,
471
+ libraryId: object.userData.libraryId,
472
+ object: object
473
+ });
474
+ }
475
+ });
476
+ return components;
477
+ }
478
+
479
+ /**
480
+ * Get scene statistics
481
+ * @returns {Object} Scene statistics
482
+ */
483
+ }, {
484
+ key: "getSceneStats",
485
+ value: function getSceneStats() {
486
+ if (!this.scene) return {};
487
+ var stats = {
488
+ totalObjects: 0,
489
+ components: 0,
490
+ connectors: 0,
491
+ gateways: 0,
492
+ meshes: 0,
493
+ materials: 0,
494
+ textures: 0,
495
+ lights: 0,
496
+ cameras: 0
497
+ };
498
+ this.scene.traverse(function (object) {
499
+ var _object$userData4, _object$userData5, _object$userData6;
500
+ stats.totalObjects++;
501
+ if (((_object$userData4 = object.userData) === null || _object$userData4 === void 0 ? void 0 : _object$userData4.componentType) === 'component') stats.components++;
502
+ if (((_object$userData5 = object.userData) === null || _object$userData5 === void 0 ? void 0 : _object$userData5.componentType) === 'connector') stats.connectors++;
503
+ if (((_object$userData6 = object.userData) === null || _object$userData6 === void 0 ? void 0 : _object$userData6.componentType) === 'gateway') stats.gateways++;
504
+ if (object.isMesh) stats.meshes++;
505
+ if (object.isLight) stats.lights++;
506
+ if (object.isCamera) stats.cameras++;
507
+ if (object.material) stats.materials++;
508
+ });
509
+ return stats;
510
+ }
511
+
512
+ // ===== UTILITY METHODS =====
513
+
514
+ /**
515
+ * Log scene information for debugging
516
+ */
517
+ }, {
518
+ key: "debugSceneInfo",
519
+ value: function debugSceneInfo() {
520
+ var _this$selectedObject;
521
+ var stats = this.getSceneStats();
522
+ var objects = this.getSceneObjects();
523
+ this.logger.info('๐Ÿ” Scene Debug Information:');
524
+ this.logger.info(' Statistics:', stats);
525
+ this.logger.info(' Objects:', objects.length);
526
+ this.logger.info(' Selected:', ((_this$selectedObject = this.selectedObject) === null || _this$selectedObject === void 0 ? void 0 : _this$selectedObject.name) || 'None');
527
+ this.logger.info(' Scene Data:', this.currentSceneData ? 'Available' : 'Not Available');
528
+ }
529
+
530
+ /**
531
+ * Check if scene has any visible objects
532
+ * @returns {boolean} True if scene has visible objects
533
+ */
534
+ }, {
535
+ key: "hasVisibleObjects",
536
+ value: function hasVisibleObjects() {
537
+ var _this = this;
538
+ if (!this.scene) return false;
539
+ var hasVisible = false;
540
+ this.scene.traverse(function (object) {
541
+ var _object$userData7;
542
+ if (object.visible && (_object$userData7 = object.userData) !== null && _object$userData7 !== void 0 && _object$userData7.componentType && object !== _this.scene) {
543
+ hasVisible = true;
544
+ }
545
+ });
546
+ return hasVisible;
547
+ }
548
+
549
+ /**
550
+ * Dispose of the scene helper
551
+ */
552
+ }, {
553
+ key: "dispose",
554
+ value: function dispose() {
555
+ this.scene = null;
556
+ this.camera = null;
557
+ this.renderer = null;
558
+ this.controls = null;
559
+ this.transformManager = null;
560
+ this.componentManager = null;
561
+ this.pathfindingManager = null;
562
+ this.currentSceneData = null;
563
+ this.selectedObject = null;
564
+ this.sceneObjects = [];
565
+ this.isInitialized = false;
566
+ this.logger.info('๐Ÿงน SceneHelper disposed');
567
+ }
568
+ }]);
569
+ }();
570
+
571
+ exports.SceneHelper = SceneHelper;
572
+ exports["default"] = SceneHelper;
@@ -1 +1,69 @@
1
- "use strict";Object.defineProperty(exports,"o",{value:!0});var e=require("./core/centralPlant.js"),r=require("./core/debugLogger.js"),s=require("./core/nameUtils.js"),a=require("./core/mathUtils.js"),n=require("./managers/scene/sceneInitializationManager.js"),o=require("./managers/scene/sceneOperationsManager.js"),t=require("./managers/scene/sceneExportManager.js"),i=require("./managers/scene/sceneTooltipsManager.js"),p=require("./managers/components/componentManager.js"),g=require("./managers/components/animationManager.js"),x=require("./managers/components/pathfindingManager.js"),m=require("./managers/controls/transformControlsManager.js"),u=require("./managers/controls/keyboardControlsManager.js"),j=require("./managers/controls/cameraControlsManager.js"),q=require("./managers/controls/dragDropManager.js"),c=require("./managers/environment/environmentManager.js"),l=require("./managers/environment/textureConfig.js"),d=require("./managers/system/hotReloadManager.js"),M=require("./managers/system/disposalManager.js"),y=require("./managers/system/performanceMonitor.js"),v=require("./rendering/modelPreloader.js"),f=require("./rendering/rendering2D.js"),C=require("./rendering/rendering3D.js"),b=require("./data/import.js"),h=require("./data/export.js"),D=require("./data/numerics.js"),O=require("./analysis/analysis.js"),P=require("./analysis/testing.js");exports.CentralPlant=e.CentralPlant,exports.DebugLogger=r.DebugLogger,exports.logger=r.logger,exports.modelLogger=r.modelLogger,exports.pathfinderLogger=r.pathfinderLogger,exports.transformLogger=r.transformLogger,exports.findObjectByHardcodedUuid=s.findObjectByHardcodedUuid,exports.generateUuidFromName=s.generateUuidFromName,exports.getHardcodedUuid=s.getHardcodedUuid,exports.MathUtils=a.MathUtils,exports.SceneInitializationManager=n.SceneInitializationManager,exports.SceneOperationsManager=o.SceneOperationsManager,exports.SceneExportManager=t.SceneExportManager,exports.SceneTooltipsManager=i.SceneTooltipsManager,exports.ComponentManager=p.ComponentManager,exports.AnimationManager=g.AnimationManager,exports.PathfindingManager=x.PathfindingManager,exports.createTransformControls=m.createTransformControls,exports.KeyboardControlsManager=u.KeyboardControlsManager,exports.CameraControlsManager=j.CameraControlsManager,exports.DragDropManager=q.default,exports.EnvironmentManager=c.EnvironmentManager,exports.loadTextureSetAndCreateMaterial=l.loadTextureSetAndCreateMaterial,exports.HotReloadManager=d.HotReloadManager,exports.DisposalManager=M.DisposalManager,exports.PerformanceMonitor=y.PerformanceMonitor,exports.modelPreloader=v.default,exports.Rendering2D=f,exports.Rendering3D=C,exports.ImportUtils=b,exports.ExportUtils=h,exports.Numerics=D,exports.Analysis=O,exports.Testing=P;
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var centralPlant = require('./core/centralPlant.js');
6
+ var debugLogger = require('./core/debugLogger.js');
7
+ var nameUtils = require('./core/nameUtils.js');
8
+ var mathUtils = require('./core/mathUtils.js');
9
+ var sceneInitializationManager = require('./managers/scene/sceneInitializationManager.js');
10
+ var sceneOperationsManager = require('./managers/scene/sceneOperationsManager.js');
11
+ var sceneExportManager = require('./managers/scene/sceneExportManager.js');
12
+ var sceneTooltipsManager = require('./managers/scene/sceneTooltipsManager.js');
13
+ var componentManager = require('./managers/components/componentManager.js');
14
+ var animationManager = require('./managers/components/animationManager.js');
15
+ var pathfindingManager = require('./managers/components/pathfindingManager.js');
16
+ var transformControlsManager = require('./managers/controls/transformControlsManager.js');
17
+ var keyboardControlsManager = require('./managers/controls/keyboardControlsManager.js');
18
+ var cameraControlsManager = require('./managers/controls/cameraControlsManager.js');
19
+ var dragDropManager = require('./managers/controls/dragDropManager.js');
20
+ var environmentManager = require('./managers/environment/environmentManager.js');
21
+ var textureConfig = require('./managers/environment/textureConfig.js');
22
+ var hotReloadManager = require('./managers/system/hotReloadManager.js');
23
+ var disposalManager = require('./managers/system/disposalManager.js');
24
+ var performanceMonitor = require('./managers/system/performanceMonitor.js');
25
+ var modelPreloader = require('./rendering/modelPreloader.js');
26
+ var rendering2D = require('./rendering/rendering2D.js');
27
+ var rendering3D = require('./rendering/rendering3D.js');
28
+ var _import = require('./data/import.js');
29
+ var _export = require('./data/export.js');
30
+ var numerics = require('./data/numerics.js');
31
+ var analysis = require('./analysis/analysis.js');
32
+ var testing = require('./analysis/testing.js');
33
+
34
+
35
+
36
+ exports.CentralPlant = centralPlant.CentralPlant;
37
+ exports.DebugLogger = debugLogger.DebugLogger;
38
+ exports.logger = debugLogger.logger;
39
+ exports.modelLogger = debugLogger.modelLogger;
40
+ exports.pathfinderLogger = debugLogger.pathfinderLogger;
41
+ exports.transformLogger = debugLogger.transformLogger;
42
+ exports.findObjectByHardcodedUuid = nameUtils.findObjectByHardcodedUuid;
43
+ exports.generateUuidFromName = nameUtils.generateUuidFromName;
44
+ exports.getHardcodedUuid = nameUtils.getHardcodedUuid;
45
+ exports.MathUtils = mathUtils.MathUtils;
46
+ exports.SceneInitializationManager = sceneInitializationManager.SceneInitializationManager;
47
+ exports.SceneOperationsManager = sceneOperationsManager.SceneOperationsManager;
48
+ exports.SceneExportManager = sceneExportManager.SceneExportManager;
49
+ exports.SceneTooltipsManager = sceneTooltipsManager.SceneTooltipsManager;
50
+ exports.ComponentManager = componentManager.ComponentManager;
51
+ exports.AnimationManager = animationManager.AnimationManager;
52
+ exports.PathfindingManager = pathfindingManager.PathfindingManager;
53
+ exports.createTransformControls = transformControlsManager.createTransformControls;
54
+ exports.KeyboardControlsManager = keyboardControlsManager.KeyboardControlsManager;
55
+ exports.CameraControlsManager = cameraControlsManager.CameraControlsManager;
56
+ exports.DragDropManager = dragDropManager["default"];
57
+ exports.EnvironmentManager = environmentManager.EnvironmentManager;
58
+ exports.loadTextureSetAndCreateMaterial = textureConfig.loadTextureSetAndCreateMaterial;
59
+ exports.HotReloadManager = hotReloadManager.HotReloadManager;
60
+ exports.DisposalManager = disposalManager.DisposalManager;
61
+ exports.PerformanceMonitor = performanceMonitor.PerformanceMonitor;
62
+ exports.modelPreloader = modelPreloader["default"];
63
+ exports.Rendering2D = rendering2D;
64
+ exports.Rendering3D = rendering3D;
65
+ exports.ImportUtils = _import;
66
+ exports.ExportUtils = _export;
67
+ exports.Numerics = numerics;
68
+ exports.Analysis = analysis;
69
+ exports.Testing = testing;