@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,304 @@
1
- import{Object3D as t,Vector2 as n,Vector3 as e,Matrix4 as o}from"three";class i extends t{constructor(t=document.createElement("div")){super(),this.isCSS2DObject=!0,this.element=t,this.element.style.position="absolute",this.element.style.userSelect="none",this.element.setAttribute("draggable",!1),this.center=new n(.5,.5),this.addEventListener("removed",function(){this.traverse(function(t){t.element instanceof t.element.ownerDocument.defaultView.Element&&null!==t.element.parentNode&&t.element.remove()})})}copy(t,n){return super.copy(t,n),this.element=t.element.cloneNode(!0),this.center=t.center,this}}const s=new e,c=new o,r=new o,u=new e,h=new e;class f{constructor(t={}){const n=this;let e,o,i,f;const a={objects:new WeakMap},l=void 0!==t.element?t.element:document.createElement("div");function d(t){t.isCSS2DObject&&(t.element.style.display="none");for(let n=0,e=t.children.length;n<e;n++)d(t.children[n])}function p(t,e,o){if(!1!==t.visible){if(t.isCSS2DObject){s.setFromMatrixPosition(t.matrixWorld),s.applyMatrix4(r);const c=s.z>=-1&&s.z<=1&&!0===t.layers.test(o.layers),u=t.element;u.style.display=!0===c?"":"none",!0===c&&(t.onBeforeRender(n,e,o),u.style.transform="translate("+-100*t.center.x+"%,"+-100*t.center.y+"%)translate("+(s.x*i+i)+"px,"+(-s.y*f+f)+"px)",u.parentNode!==l&&l.appendChild(u),t.onAfterRender(n,e,o));const h={distanceToCameraSquared:w(o,t)};a.objects.set(t,h)}for(let n=0,i=t.children.length;n<i;n++)p(t.children[n],e,o)}else d(t)}function w(t,n){return u.setFromMatrixPosition(t.matrixWorld),h.setFromMatrixPosition(n.matrixWorld),u.distanceToSquared(h)}l.style.overflow="hidden",this.domElement=l,this.getSize=function(){return{width:e,height:o}},this.render=function(t,n){!0===t.matrixWorldAutoUpdate&&t.updateMatrixWorld(),null===n.parent&&!0===n.matrixWorldAutoUpdate&&n.updateMatrixWorld(),c.copy(n.matrixWorldInverse),r.multiplyMatrices(n.projectionMatrix,c),p(t,t,n),function(t){const n=function(t){const n=[];return t.traverseVisible(function(t){t.isCSS2DObject&&n.push(t)}),n}(t).sort(function(t,n){if(t.renderOrder!==n.renderOrder)return n.renderOrder-t.renderOrder;return a.objects.get(t).distanceToCameraSquared-a.objects.get(n).distanceToCameraSquared}),e=n.length;for(let t=0,o=n.length;t<o;t++)n[t].element.style.zIndex=e-t}(t)},this.setSize=function(t,n){e=t,o=n,i=e/2,f=o/2,l.style.width=t+"px",l.style.height=n+"px"}}}export{i as CSS2DObject,f as CSS2DRenderer};
1
+ import { Object3D, Vector2, Vector3, Matrix4 } from 'three';
2
+
3
+ /**
4
+ * The only type of 3D object that is supported by {@link CSS2DRenderer}.
5
+ *
6
+ * @augments Object3D
7
+ * @three_import import { CSS2DObject } from 'three/addons/renderers/CSS2DRenderer.js';
8
+ */
9
+ class CSS2DObject extends Object3D {
10
+
11
+ /**
12
+ * Constructs a new CSS2D object.
13
+ *
14
+ * @param {DOMElement} [element] - The DOM element.
15
+ */
16
+ constructor( element = document.createElement( 'div' ) ) {
17
+
18
+ super();
19
+
20
+ /**
21
+ * This flag can be used for type testing.
22
+ *
23
+ * @type {boolean}
24
+ * @readonly
25
+ * @default true
26
+ */
27
+ this.isCSS2DObject = true;
28
+
29
+ /**
30
+ * The DOM element which defines the appearance of this 3D object.
31
+ *
32
+ * @type {DOMElement}
33
+ * @readonly
34
+ * @default true
35
+ */
36
+ this.element = element;
37
+
38
+ this.element.style.position = 'absolute';
39
+ this.element.style.userSelect = 'none';
40
+
41
+ this.element.setAttribute( 'draggable', false );
42
+
43
+ /**
44
+ * The 3D objects center point.
45
+ * `( 0, 0 )` is the lower left, `( 1, 1 )` is the top right.
46
+ *
47
+ * @type {Vector2}
48
+ * @default (0.5,0.5)
49
+ */
50
+ this.center = new Vector2( 0.5, 0.5 );
51
+
52
+ this.addEventListener( 'removed', function () {
53
+
54
+ this.traverse( function ( object ) {
55
+
56
+ if (
57
+ object.element instanceof object.element.ownerDocument.defaultView.Element &&
58
+ object.element.parentNode !== null
59
+ ) {
60
+
61
+ object.element.remove();
62
+
63
+ }
64
+
65
+ } );
66
+
67
+ } );
68
+
69
+ }
70
+
71
+ copy( source, recursive ) {
72
+
73
+ super.copy( source, recursive );
74
+
75
+ this.element = source.element.cloneNode( true );
76
+
77
+ this.center = source.center;
78
+
79
+ return this;
80
+
81
+ }
82
+
83
+ }
84
+
85
+ //
86
+
87
+ const _vector = new Vector3();
88
+ const _viewMatrix = new Matrix4();
89
+ const _viewProjectionMatrix = new Matrix4();
90
+ const _a = new Vector3();
91
+ const _b = new Vector3();
92
+
93
+ /**
94
+ * This renderer is a simplified version of {@link CSS3DRenderer}. The only transformation that is
95
+ * supported is translation.
96
+ *
97
+ * The renderer is very useful if you want to combine HTML based labels with 3D objects. Here too,
98
+ * the respective DOM elements are wrapped into an instance of {@link CSS2DObject} and added to the
99
+ * scene graph. All other types of renderable 3D objects (like meshes or point clouds) are ignored.
100
+ *
101
+ * `CSS2DRenderer` only supports 100% browser and display zoom.
102
+ *
103
+ * @three_import import { CSS2DRenderer } from 'three/addons/renderers/CSS2DRenderer.js';
104
+ */
105
+ class CSS2DRenderer {
106
+
107
+ /**
108
+ * Constructs a new CSS2D renderer.
109
+ *
110
+ * @param {CSS2DRenderer~Parameters} [parameters] - The parameters.
111
+ */
112
+ constructor( parameters = {} ) {
113
+
114
+ const _this = this;
115
+
116
+ let _width, _height;
117
+ let _widthHalf, _heightHalf;
118
+
119
+ const cache = {
120
+ objects: new WeakMap()
121
+ };
122
+
123
+ const domElement = parameters.element !== undefined ? parameters.element : document.createElement( 'div' );
124
+
125
+ domElement.style.overflow = 'hidden';
126
+
127
+ /**
128
+ * The DOM where the renderer appends its child-elements.
129
+ *
130
+ * @type {DOMElement}
131
+ */
132
+ this.domElement = domElement;
133
+
134
+ /**
135
+ * Returns an object containing the width and height of the renderer.
136
+ *
137
+ * @return {{width:number,height:number}} The size of the renderer.
138
+ */
139
+ this.getSize = function () {
140
+
141
+ return {
142
+ width: _width,
143
+ height: _height
144
+ };
145
+
146
+ };
147
+
148
+ /**
149
+ * Renders the given scene using the given camera.
150
+ *
151
+ * @param {Object3D} scene - A scene or any other type of 3D object.
152
+ * @param {Camera} camera - The camera.
153
+ */
154
+ this.render = function ( scene, camera ) {
155
+
156
+ if ( scene.matrixWorldAutoUpdate === true ) scene.updateMatrixWorld();
157
+ if ( camera.parent === null && camera.matrixWorldAutoUpdate === true ) camera.updateMatrixWorld();
158
+
159
+ _viewMatrix.copy( camera.matrixWorldInverse );
160
+ _viewProjectionMatrix.multiplyMatrices( camera.projectionMatrix, _viewMatrix );
161
+
162
+ renderObject( scene, scene, camera );
163
+ zOrder( scene );
164
+
165
+ };
166
+
167
+ /**
168
+ * Resizes the renderer to the given width and height.
169
+ *
170
+ * @param {number} width - The width of the renderer.
171
+ * @param {number} height - The height of the renderer.
172
+ */
173
+ this.setSize = function ( width, height ) {
174
+
175
+ _width = width;
176
+ _height = height;
177
+
178
+ _widthHalf = _width / 2;
179
+ _heightHalf = _height / 2;
180
+
181
+ domElement.style.width = width + 'px';
182
+ domElement.style.height = height + 'px';
183
+
184
+ };
185
+
186
+ function hideObject( object ) {
187
+
188
+ if ( object.isCSS2DObject ) object.element.style.display = 'none';
189
+
190
+ for ( let i = 0, l = object.children.length; i < l; i ++ ) {
191
+
192
+ hideObject( object.children[ i ] );
193
+
194
+ }
195
+
196
+ }
197
+
198
+ function renderObject( object, scene, camera ) {
199
+
200
+ if ( object.visible === false ) {
201
+
202
+ hideObject( object );
203
+
204
+ return;
205
+
206
+ }
207
+
208
+ if ( object.isCSS2DObject ) {
209
+
210
+ _vector.setFromMatrixPosition( object.matrixWorld );
211
+ _vector.applyMatrix4( _viewProjectionMatrix );
212
+
213
+ const visible = ( _vector.z >= - 1 && _vector.z <= 1 ) && ( object.layers.test( camera.layers ) === true );
214
+
215
+ const element = object.element;
216
+ element.style.display = visible === true ? '' : 'none';
217
+
218
+ if ( visible === true ) {
219
+
220
+ object.onBeforeRender( _this, scene, camera );
221
+
222
+ element.style.transform = 'translate(' + ( - 100 * object.center.x ) + '%,' + ( - 100 * object.center.y ) + '%)' + 'translate(' + ( _vector.x * _widthHalf + _widthHalf ) + 'px,' + ( - _vector.y * _heightHalf + _heightHalf ) + 'px)';
223
+
224
+ if ( element.parentNode !== domElement ) {
225
+
226
+ domElement.appendChild( element );
227
+
228
+ }
229
+
230
+ object.onAfterRender( _this, scene, camera );
231
+
232
+ }
233
+
234
+ const objectData = {
235
+ distanceToCameraSquared: getDistanceToSquared( camera, object )
236
+ };
237
+
238
+ cache.objects.set( object, objectData );
239
+
240
+ }
241
+
242
+ for ( let i = 0, l = object.children.length; i < l; i ++ ) {
243
+
244
+ renderObject( object.children[ i ], scene, camera );
245
+
246
+ }
247
+
248
+ }
249
+
250
+ function getDistanceToSquared( object1, object2 ) {
251
+
252
+ _a.setFromMatrixPosition( object1.matrixWorld );
253
+ _b.setFromMatrixPosition( object2.matrixWorld );
254
+
255
+ return _a.distanceToSquared( _b );
256
+
257
+ }
258
+
259
+ function filterAndFlatten( scene ) {
260
+
261
+ const result = [];
262
+
263
+ scene.traverseVisible( function ( object ) {
264
+
265
+ if ( object.isCSS2DObject ) result.push( object );
266
+
267
+ } );
268
+
269
+ return result;
270
+
271
+ }
272
+
273
+ function zOrder( scene ) {
274
+
275
+ const sorted = filterAndFlatten( scene ).sort( function ( a, b ) {
276
+
277
+ if ( a.renderOrder !== b.renderOrder ) {
278
+
279
+ return b.renderOrder - a.renderOrder;
280
+
281
+ }
282
+
283
+ const distanceA = cache.objects.get( a ).distanceToCameraSquared;
284
+ const distanceB = cache.objects.get( b ).distanceToCameraSquared;
285
+
286
+ return distanceA - distanceB;
287
+
288
+ } );
289
+
290
+ const zMax = sorted.length;
291
+
292
+ for ( let i = 0, l = sorted.length; i < l; i ++ ) {
293
+
294
+ sorted[ i ].element.style.zIndex = zMax - i;
295
+
296
+ }
297
+
298
+ }
299
+
300
+ }
301
+
302
+ }
303
+
304
+ export { CSS2DObject, CSS2DRenderer };
@@ -1 +1,116 @@
1
- import{TrianglesDrawMode as t,TriangleFanDrawMode as r,TriangleStripDrawMode as e}from"three";function o(o,n){if(n===t)return o;if(n===r||n===e){let t=o.getIndex();if(null===t){const r=[],e=o.getAttribute("position");if(void 0===e)return o;for(let t=0;t<e.count;t++)r.push(t);o.setIndex(r),t=o.getIndex()}const e=t.count-2,f=[];if(n===r)for(let r=1;r<=e;r++)f.push(t.getX(0)),f.push(t.getX(r)),f.push(t.getX(r+1));else for(let r=0;r<e;r++)r%2==0?(f.push(t.getX(r)),f.push(t.getX(r+1)),f.push(t.getX(r+2))):(f.push(t.getX(r+2)),f.push(t.getX(r+1)),f.push(t.getX(r)));f.length;const i=o.clone();return i.setIndex(f),i.clearGroups(),i}return o}export{o as toTrianglesDrawMode};
1
+ import { TrianglesDrawMode, TriangleFanDrawMode, TriangleStripDrawMode } from 'three';
2
+
3
+ /**
4
+ * Returns a new indexed geometry based on `TrianglesDrawMode` draw mode.
5
+ * This mode corresponds to the `gl.TRIANGLES` primitive in WebGL.
6
+ *
7
+ * @param {BufferGeometry} geometry - The geometry to convert.
8
+ * @param {number} drawMode - The current draw mode.
9
+ * @return {BufferGeometry} The new geometry using `TrianglesDrawMode`.
10
+ */
11
+ function toTrianglesDrawMode( geometry, drawMode ) {
12
+
13
+ if ( drawMode === TrianglesDrawMode ) {
14
+
15
+ console.warn( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Geometry already defined as triangles.' );
16
+ return geometry;
17
+
18
+ }
19
+
20
+ if ( drawMode === TriangleFanDrawMode || drawMode === TriangleStripDrawMode ) {
21
+
22
+ let index = geometry.getIndex();
23
+
24
+ // generate index if not present
25
+
26
+ if ( index === null ) {
27
+
28
+ const indices = [];
29
+
30
+ const position = geometry.getAttribute( 'position' );
31
+
32
+ if ( position !== undefined ) {
33
+
34
+ for ( let i = 0; i < position.count; i ++ ) {
35
+
36
+ indices.push( i );
37
+
38
+ }
39
+
40
+ geometry.setIndex( indices );
41
+ index = geometry.getIndex();
42
+
43
+ } else {
44
+
45
+ console.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Undefined position attribute. Processing not possible.' );
46
+ return geometry;
47
+
48
+ }
49
+
50
+ }
51
+
52
+ //
53
+
54
+ const numberOfTriangles = index.count - 2;
55
+ const newIndices = [];
56
+
57
+ if ( drawMode === TriangleFanDrawMode ) {
58
+
59
+ // gl.TRIANGLE_FAN
60
+
61
+ for ( let i = 1; i <= numberOfTriangles; i ++ ) {
62
+
63
+ newIndices.push( index.getX( 0 ) );
64
+ newIndices.push( index.getX( i ) );
65
+ newIndices.push( index.getX( i + 1 ) );
66
+
67
+ }
68
+
69
+ } else {
70
+
71
+ // gl.TRIANGLE_STRIP
72
+
73
+ for ( let i = 0; i < numberOfTriangles; i ++ ) {
74
+
75
+ if ( i % 2 === 0 ) {
76
+
77
+ newIndices.push( index.getX( i ) );
78
+ newIndices.push( index.getX( i + 1 ) );
79
+ newIndices.push( index.getX( i + 2 ) );
80
+
81
+ } else {
82
+
83
+ newIndices.push( index.getX( i + 2 ) );
84
+ newIndices.push( index.getX( i + 1 ) );
85
+ newIndices.push( index.getX( i ) );
86
+
87
+ }
88
+
89
+ }
90
+
91
+ }
92
+
93
+ if ( ( newIndices.length / 3 ) !== numberOfTriangles ) {
94
+
95
+ console.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unable to generate correct amount of triangles.' );
96
+
97
+ }
98
+
99
+ // build final geometry
100
+
101
+ const newGeometry = geometry.clone();
102
+ newGeometry.setIndex( newIndices );
103
+ newGeometry.clearGroups();
104
+
105
+ return newGeometry;
106
+
107
+ } else {
108
+
109
+ console.error( 'THREE.BufferGeometryUtils.toTrianglesDrawMode(): Unknown draw mode:', drawMode );
110
+ return geometry;
111
+
112
+ }
113
+
114
+ }
115
+
116
+ export { toTrianglesDrawMode };