@2112-lab/central-plant 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/dist/bundle/index.js +33146 -1
  2. package/dist/cjs/_virtual/_rollupPluginBabelHelpers.js +432 -1
  3. package/dist/cjs/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1448 -1
  4. package/dist/cjs/node_modules/three/examples/jsm/controls/OrbitControls.js +1853 -1
  5. package/dist/cjs/node_modules/three/examples/jsm/exporters/GLTFExporter.js +3537 -1
  6. package/dist/cjs/node_modules/three/examples/jsm/exporters/OBJExporter.js +305 -1
  7. package/dist/cjs/node_modules/three/examples/jsm/exporters/PLYExporter.js +542 -1
  8. package/dist/cjs/node_modules/three/examples/jsm/exporters/STLExporter.js +218 -1
  9. package/dist/cjs/node_modules/three/examples/jsm/loaders/DRACOLoader.js +683 -1
  10. package/dist/cjs/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4811 -1
  11. package/dist/cjs/node_modules/three/examples/jsm/loaders/RGBELoader.js +480 -1
  12. package/dist/cjs/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +309 -1
  13. package/dist/cjs/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +120 -1
  14. package/dist/cjs/src/analysis/analysis.js +560 -1
  15. package/dist/cjs/src/analysis/testing.js +958 -1
  16. package/dist/cjs/src/core/centralPlant.js +1149 -1
  17. package/dist/cjs/src/core/debugLogger.js +175 -1
  18. package/dist/cjs/src/core/mathUtils.js +574 -1
  19. package/dist/cjs/src/core/nameUtils.js +93 -1
  20. package/dist/cjs/src/data/export.js +716 -1
  21. package/dist/cjs/src/data/import.js +380 -1
  22. package/dist/cjs/src/data/numerics.js +522 -1
  23. package/dist/cjs/src/helpers/sceneHelper.js +572 -1
  24. package/dist/cjs/src/index.js +69 -1
  25. package/dist/cjs/src/managers/components/animationManager.js +123 -1
  26. package/dist/cjs/src/managers/components/componentManager.js +332 -1
  27. package/dist/cjs/src/managers/components/pathfindingManager.js +1441 -1
  28. package/dist/cjs/src/managers/controls/TransformControls.js +1063 -1
  29. package/dist/cjs/src/managers/controls/cameraControlsManager.js +79 -1
  30. package/dist/cjs/src/managers/controls/dragDropManager.js +1026 -1
  31. package/dist/cjs/src/managers/controls/keyboardControlsManager.js +395 -1
  32. package/dist/cjs/src/managers/controls/transformControlsManager.js +1807 -1
  33. package/dist/cjs/src/managers/environment/environmentManager.js +714 -1
  34. package/dist/cjs/src/managers/environment/textureConfig.js +229 -1
  35. package/dist/cjs/src/managers/scene/sceneExportManager.js +264 -1
  36. package/dist/cjs/src/managers/scene/sceneInitializationManager.js +346 -1
  37. package/dist/cjs/src/managers/scene/sceneOperationsManager.js +1509 -1
  38. package/dist/cjs/src/managers/scene/sceneTooltipsManager.js +661 -1
  39. package/dist/cjs/src/managers/system/disposalManager.js +444 -1
  40. package/dist/cjs/src/managers/system/hotReloadManager.js +291 -1
  41. package/dist/cjs/src/managers/system/performanceMonitor.js +863 -1
  42. package/dist/cjs/src/rendering/modelPreloader.js +369 -1
  43. package/dist/cjs/src/rendering/rendering2D.js +631 -1
  44. package/dist/cjs/src/rendering/rendering3D.js +685 -1
  45. package/dist/esm/_virtual/_rollupPluginBabelHelpers.js +396 -1
  46. package/dist/esm/node_modules/@2112-lab/pathfinder/dist/index.esm.js +1444 -1
  47. package/dist/esm/node_modules/three/examples/jsm/controls/OrbitControls.js +1849 -1
  48. package/dist/esm/node_modules/three/examples/jsm/exporters/GLTFExporter.js +3533 -1
  49. package/dist/esm/node_modules/three/examples/jsm/exporters/OBJExporter.js +301 -1
  50. package/dist/esm/node_modules/three/examples/jsm/exporters/PLYExporter.js +538 -1
  51. package/dist/esm/node_modules/three/examples/jsm/exporters/STLExporter.js +214 -1
  52. package/dist/esm/node_modules/three/examples/jsm/loaders/DRACOLoader.js +679 -1
  53. package/dist/esm/node_modules/three/examples/jsm/loaders/GLTFLoader.js +4807 -1
  54. package/dist/esm/node_modules/three/examples/jsm/loaders/RGBELoader.js +476 -1
  55. package/dist/esm/node_modules/three/examples/jsm/renderers/CSS2DRenderer.js +304 -1
  56. package/dist/esm/node_modules/three/examples/jsm/utils/BufferGeometryUtils.js +116 -1
  57. package/dist/esm/src/analysis/analysis.js +536 -1
  58. package/dist/esm/src/analysis/testing.js +954 -1
  59. package/dist/esm/src/core/centralPlant.js +1144 -1
  60. package/dist/esm/src/core/debugLogger.js +167 -1
  61. package/dist/esm/src/core/mathUtils.js +570 -1
  62. package/dist/esm/src/core/nameUtils.js +87 -1
  63. package/dist/esm/src/data/export.js +712 -1
  64. package/dist/esm/src/data/import.js +356 -1
  65. package/dist/esm/src/data/numerics.js +518 -1
  66. package/dist/esm/src/helpers/sceneHelper.js +547 -1
  67. package/dist/esm/src/index.js +35 -1
  68. package/dist/esm/src/managers/components/animationManager.js +119 -1
  69. package/dist/esm/src/managers/components/componentManager.js +328 -1
  70. package/dist/esm/src/managers/components/pathfindingManager.js +1417 -1
  71. package/dist/esm/src/managers/controls/TransformControls.js +1057 -1
  72. package/dist/esm/src/managers/controls/cameraControlsManager.js +75 -1
  73. package/dist/esm/src/managers/controls/dragDropManager.js +1002 -1
  74. package/dist/esm/src/managers/controls/keyboardControlsManager.js +371 -1
  75. package/dist/esm/src/managers/controls/transformControlsManager.js +1782 -1
  76. package/dist/esm/src/managers/environment/environmentManager.js +690 -1
  77. package/dist/esm/src/managers/environment/textureConfig.js +202 -1
  78. package/dist/esm/src/managers/scene/sceneExportManager.js +260 -1
  79. package/dist/esm/src/managers/scene/sceneInitializationManager.js +322 -1
  80. package/dist/esm/src/managers/scene/sceneOperationsManager.js +1485 -1
  81. package/dist/esm/src/managers/scene/sceneTooltipsManager.js +637 -1
  82. package/dist/esm/src/managers/system/disposalManager.js +440 -1
  83. package/dist/esm/src/managers/system/hotReloadManager.js +287 -1
  84. package/dist/esm/src/managers/system/performanceMonitor.js +858 -1
  85. package/dist/esm/src/rendering/modelPreloader.js +364 -1
  86. package/dist/esm/src/rendering/rendering2D.js +627 -1
  87. package/dist/esm/src/rendering/rendering3D.js +661 -1
  88. package/package.json +1 -1
@@ -1 +1,574 @@
1
- "use strict";Object.defineProperty(exports,"t",{value:!0});var t,n=require("../../_virtual/_rollupPluginBabelHelpers.js"),r=n.createClass(function t(){n.classCallCheck(this,t)});t=r,n.defineProperty(r,"PI",Math.PI),n.defineProperty(r,"TWO_PI",2*Math.PI),n.defineProperty(r,"HALF_PI",Math.PI/2),n.defineProperty(r,"DEG_TO_RAD",Math.PI/180),n.defineProperty(r,"RAD_TO_DEG",180/Math.PI),n.defineProperty(r,"EPSILON",1e-10),n.defineProperty(r,"angle",{toRadians:function(n){return n*t.DEG_TO_RAD},toDegrees:function(n){return n*t.RAD_TO_DEG},normalize:function(n){for(;n<0;)n+=t.TWO_PI;for(;n>=t.TWO_PI;)n-=t.TWO_PI;return n},normalizeSignedAngle:function(n){return(n=t.angle.normalize(n))>Math.PI?n-t.TWO_PI:n},distance:function(n,r){var e=t.angle.normalizeSignedAngle(r-n);return Math.abs(e)},lerp:function(n,r,e){var u=t.angle.normalizeSignedAngle(r-n);return t.angle.normalize(n+u*e)}}),n.defineProperty(r,"interpolation",{linear:function(t,n,r){return t+(n-t)*r},smoothstep:function(n,r,e){var u=e*e*(3-2*e);return t.interpolation.linear(n,r,u)},smootherstep:function(n,r,e){var u=e*e*e*(e*(6*e-15)+10);return t.interpolation.linear(n,r,u)},cosine:function(t,n,r){var e=r*Math.PI,u=.5*(1-Math.cos(e));return t*(1-u)+n*u},cubic:function(t,n,r,e,u){var a=u*u;return.5*(2*n+(-t+r)*u+(2*t-5*n+4*r-e)*a+(3*n-t-3*r+e)*(a*u))}}),n.defineProperty(r,"easing",{easeInQuad:function(t){return t*t},easeOutQuad:function(t){return t*(2-t)},easeInOutQuad:function(t){return t<.5?2*t*t:(4-2*t)*t-1},easeInCubic:function(t){return t*t*t},easeOutCubic:function(t){return--t*t*t+1},easeInOutCubic:function(t){return t<.5?4*t*t*t:(t-1)*(2*t-2)*(2*t-2)+1},easeInQuart:function(t){return t*t*t*t},easeOutQuart:function(t){return 1- --t*t*t*t},easeInOutQuart:function(t){return t<.5?8*t*t*t*t:1-8*--t*t*t*t},easeInQuint:function(t){return t*t*t*t*t},easeOutQuint:function(t){return 1+--t*t*t*t*t},easeInOutQuint:function(t){return t<.5?16*t*t*t*t*t:1+16*--t*t*t*t*t},easeInSine:function(n){return 1-Math.cos(n*t.HALF_PI)},easeOutSine:function(n){return Math.sin(n*t.HALF_PI)},easeInOutSine:function(n){return.5*(1-Math.cos(t.PI*n))},easeInExpo:function(t){return 0===t?0:Math.pow(2,10*(t-1))},easeOutExpo:function(t){return 1===t?1:1-Math.pow(2,-10*t)},easeInOutExpo:function(t){return 0===t?0:1===t?1:t<.5?.5*Math.pow(2,10*(2*t-1)):.5*(2-Math.pow(2,-10*(2*t-1)))},easeInCirc:function(t){return 1-Math.sqrt(1-t*t)},easeOutCirc:function(t){return Math.sqrt(1- --t*t)},easeInOutCirc:function(t){return(t*=2)<1?.5*(1-Math.sqrt(1-t*t)):(t-=2,.5*(Math.sqrt(1-t*t)+1))},easeInElastic:function(n){if(0===n)return 0;if(1===n)return 1;return-Math.pow(2,10*(n-=1))*Math.sin((n-.075)*t.TWO_PI/.3)},easeOutElastic:function(n){if(0===n)return 0;if(1===n)return 1;return Math.pow(2,-10*n)*Math.sin((n-.075)*t.TWO_PI/.3)+1}}),n.defineProperty(r,"geometry",{triangleArea:function(t,n,r){return.5*Math.abs((n[0]-t[0])*(r[1]-t[1])-(r[0]-t[0])*(n[1]-t[1]))},polygonArea:function(t){for(var n=0,r=t.length,e=0;e<r;e++){var u=(e+1)%r;n+=t[e][0]*t[u][1],n-=t[u][0]*t[e][1]}return Math.abs(n)/2},pointInTriangle:function(n,r,e,u){var a=t.geometry.triangleArea(r,e,u),i=t.geometry.triangleArea(n,e,u),o=t.geometry.triangleArea(r,n,u),c=t.geometry.triangleArea(r,e,n);return Math.abs(a-(i+o+c))<t.EPSILON},polygonCentroid:function(t){for(var n=0,r=0,e=0,u=t.length,a=0;a<u;a++){var i=(a+1)%u,o=t[a][0]*t[i][1]-t[i][0]*t[a][1];e+=o,n+=(t[a][0]+t[i][0])*o,r+=(t[a][1]+t[i][1])*o}return[n/=6*(e/=2),r/=6*e]}}),n.defineProperty(r,"random",{float:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return t+Math.random()*(n-t)},int:function(n,r){return Math.floor(t.random.float(n,r+1))},boolean:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:.5;return Math.random()<t},choice:function(n){return n[t.random.int(0,n.length-1)]},shuffle:function(t){for(var r=n.toConsumableArray(t),e=r.length-1;e>0;e--){var u=Math.floor(Math.random()*(e+1)),a=[r[u],r[e]];r[e]=a[0],r[u]=a[1]}return r},unitCircle:function(){var n=t.random.float(0,t.TWO_PI);return[Math.cos(n),Math.sin(n)]},insideUnitCircle:function(){var r=t.random.unitCircle(),e=n.slicedToArray(r,2),u=e[0],a=e[1],i=Math.sqrt(Math.random());return[u*i,a*i]},unitSphere:function(){var n=Math.random(),r=Math.random(),e=t.TWO_PI*n,u=Math.acos(2*r-1);return[Math.sin(u)*Math.cos(e),Math.sin(u)*Math.sin(e),Math.cos(u)]}}),n.defineProperty(r,"color",{hslToRgb:function(t,n,r){t/=360;var e,u,a,i=(1-Math.abs(2*r-1))*n,o=i*(1-Math.abs(6*t%2-1)),c=r-i/2;return t<1/6?(e=i,u=o,a=0):t<2/6?(e=o,u=i,a=0):t<.5?(e=0,u=i,a=o):t<4/6?(e=0,u=o,a=i):t<5/6?(e=o,u=0,a=i):(e=i,u=0,a=o),[Math.round(255*(e+c)),Math.round(255*(u+c)),Math.round(255*(a+c))]},rgbToHsl:function(t,n,r){t/=255,n/=255,r/=255;var e=Math.max(t,n,r),u=Math.min(t,n,r),a=(e+u)/2;if(e===u)return[0,0,a];var i,o=e-u,c=a>.5?o/(2-e-u):o/(e+u);switch(e){case t:i=(n-r)/o+(n<r?6:0);break;case n:i=(r-t)/o+2;break;case r:i=(t-n)/o+4}return[360*(i/=6),c,a]},lerp:function(n,r,e){return[Math.round(t.interpolation.linear(n[0],r[0],e)),Math.round(t.interpolation.linear(n[1],r[1],e)),Math.round(t.interpolation.linear(n[2],r[2],e))]}}),n.defineProperty(r,"utils",{clamp:function(t,n,r){return Math.max(n,Math.min(r,t))},map:function(t,n,r,e,u){return e+(t-n)*(u-e)/(r-n)},isPowerOfTwo:function(t){return!(t&t-1)},nextPowerOfTwo:function(t){return Math.pow(2,Math.ceil(Math.log2(t)))},gcd:function(n,r){return 0===r?n:t.utils.gcd(r,n%r)},lcm:function(n,r){return Math.abs(n*r)/t.utils.gcd(n,r)},approxEqual:function(n,r){var e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.EPSILON;return Math.abs(n-r)<e},round:function(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r=Math.pow(10,n);return Math.round(t*r)/r}}),exports.MathUtils=r;
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _rollupPluginBabelHelpers = require('../../_virtual/_rollupPluginBabelHelpers.js');
6
+
7
+ var _MathUtils;
8
+ /**
9
+ * MathUtils
10
+ * Essential mathematical utilities and helper functions
11
+ */
12
+
13
+ var MathUtils = /*#__PURE__*/_rollupPluginBabelHelpers.createClass(function MathUtils() {
14
+ _rollupPluginBabelHelpers.classCallCheck(this, MathUtils);
15
+ });
16
+ _MathUtils = MathUtils;
17
+ _rollupPluginBabelHelpers.defineProperty(MathUtils, "PI", Math.PI);
18
+ _rollupPluginBabelHelpers.defineProperty(MathUtils, "TWO_PI", 2 * Math.PI);
19
+ _rollupPluginBabelHelpers.defineProperty(MathUtils, "HALF_PI", Math.PI / 2);
20
+ _rollupPluginBabelHelpers.defineProperty(MathUtils, "DEG_TO_RAD", Math.PI / 180);
21
+ _rollupPluginBabelHelpers.defineProperty(MathUtils, "RAD_TO_DEG", 180 / Math.PI);
22
+ _rollupPluginBabelHelpers.defineProperty(MathUtils, "EPSILON", 1e-10);
23
+ /**
24
+ * Angle utilities
25
+ */
26
+ _rollupPluginBabelHelpers.defineProperty(MathUtils, "angle", {
27
+ /**
28
+ * Convert degrees to radians
29
+ * @param {number} degrees - Angle in degrees
30
+ * @returns {number} Angle in radians
31
+ */
32
+ toRadians: function toRadians(degrees) {
33
+ return degrees * _MathUtils.DEG_TO_RAD;
34
+ },
35
+ /**
36
+ * Convert radians to degrees
37
+ * @param {number} radians - Angle in radians
38
+ * @returns {number} Angle in degrees
39
+ */
40
+ toDegrees: function toDegrees(radians) {
41
+ return radians * _MathUtils.RAD_TO_DEG;
42
+ },
43
+ /**
44
+ * Normalize angle to [0, 2π] range
45
+ * @param {number} angle - Angle in radians
46
+ * @returns {number} Normalized angle
47
+ */
48
+ normalize: function normalize(angle) {
49
+ while (angle < 0) angle += _MathUtils.TWO_PI;
50
+ while (angle >= _MathUtils.TWO_PI) angle -= _MathUtils.TWO_PI;
51
+ return angle;
52
+ },
53
+ /**
54
+ * Normalize angle to [-π, π] range
55
+ * @param {number} angle - Angle in radians
56
+ * @returns {number} Normalized angle
57
+ */
58
+ normalizeSignedAngle: function normalizeSignedAngle(angle) {
59
+ angle = _MathUtils.angle.normalize(angle);
60
+ return angle > Math.PI ? angle - _MathUtils.TWO_PI : angle;
61
+ },
62
+ /**
63
+ * Calculate shortest angular distance between two angles
64
+ * @param {number} a - First angle in radians
65
+ * @param {number} b - Second angle in radians
66
+ * @returns {number} Angular distance
67
+ */
68
+ distance: function distance(a, b) {
69
+ var diff = _MathUtils.angle.normalizeSignedAngle(b - a);
70
+ return Math.abs(diff);
71
+ },
72
+ /**
73
+ * Linear interpolation between two angles
74
+ * @param {number} a - Start angle in radians
75
+ * @param {number} b - End angle in radians
76
+ * @param {number} t - Interpolation factor (0-1)
77
+ * @returns {number} Interpolated angle
78
+ */
79
+ lerp: function lerp(a, b, t) {
80
+ var diff = _MathUtils.angle.normalizeSignedAngle(b - a);
81
+ return _MathUtils.angle.normalize(a + diff * t);
82
+ }
83
+ });
84
+ /**
85
+ * Interpolation utilities
86
+ */
87
+ _rollupPluginBabelHelpers.defineProperty(MathUtils, "interpolation", {
88
+ /**
89
+ * Linear interpolation
90
+ * @param {number} a - Start value
91
+ * @param {number} b - End value
92
+ * @param {number} t - Factor (0-1)
93
+ * @returns {number} Interpolated value
94
+ */
95
+ linear: function linear(a, b, t) {
96
+ return a + (b - a) * t;
97
+ },
98
+ /**
99
+ * Smoothstep interpolation
100
+ * @param {number} a - Start value
101
+ * @param {number} b - End value
102
+ * @param {number} t - Factor (0-1)
103
+ * @returns {number} Smoothly interpolated value
104
+ */
105
+ smoothstep: function smoothstep(a, b, t) {
106
+ var smooth = t * t * (3 - 2 * t);
107
+ return _MathUtils.interpolation.linear(a, b, smooth);
108
+ },
109
+ /**
110
+ * Smootherstep interpolation
111
+ * @param {number} a - Start value
112
+ * @param {number} b - End value
113
+ * @param {number} t - Factor (0-1)
114
+ * @returns {number} Smoother interpolated value
115
+ */
116
+ smootherstep: function smootherstep(a, b, t) {
117
+ var smooth = t * t * t * (t * (t * 6 - 15) + 10);
118
+ return _MathUtils.interpolation.linear(a, b, smooth);
119
+ },
120
+ /**
121
+ * Cosine interpolation
122
+ * @param {number} a - Start value
123
+ * @param {number} b - End value
124
+ * @param {number} t - Factor (0-1)
125
+ * @returns {number} Cosine interpolated value
126
+ */
127
+ cosine: function cosine(a, b, t) {
128
+ var ft = t * Math.PI;
129
+ var f = (1 - Math.cos(ft)) * 0.5;
130
+ return a * (1 - f) + b * f;
131
+ },
132
+ /**
133
+ * Cubic interpolation
134
+ * @param {number} p0 - Point before start
135
+ * @param {number} p1 - Start point
136
+ * @param {number} p2 - End point
137
+ * @param {number} p3 - Point after end
138
+ * @param {number} t - Factor (0-1)
139
+ * @returns {number} Cubic interpolated value
140
+ */
141
+ cubic: function cubic(p0, p1, p2, p3, t) {
142
+ var t2 = t * t;
143
+ var t3 = t2 * t;
144
+ return 0.5 * (2 * p1 + (-p0 + p2) * t + (2 * p0 - 5 * p1 + 4 * p2 - p3) * t2 + (-p0 + 3 * p1 - 3 * p2 + p3) * t3);
145
+ }
146
+ });
147
+ /**
148
+ * Easing functions
149
+ */
150
+ _rollupPluginBabelHelpers.defineProperty(MathUtils, "easing", {
151
+ // Quadratic
152
+ easeInQuad: function easeInQuad(t) {
153
+ return t * t;
154
+ },
155
+ easeOutQuad: function easeOutQuad(t) {
156
+ return t * (2 - t);
157
+ },
158
+ easeInOutQuad: function easeInOutQuad(t) {
159
+ return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t;
160
+ },
161
+ // Cubic
162
+ easeInCubic: function easeInCubic(t) {
163
+ return t * t * t;
164
+ },
165
+ easeOutCubic: function easeOutCubic(t) {
166
+ return --t * t * t + 1;
167
+ },
168
+ easeInOutCubic: function easeInOutCubic(t) {
169
+ return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1;
170
+ },
171
+ // Quartic
172
+ easeInQuart: function easeInQuart(t) {
173
+ return t * t * t * t;
174
+ },
175
+ easeOutQuart: function easeOutQuart(t) {
176
+ return 1 - --t * t * t * t;
177
+ },
178
+ easeInOutQuart: function easeInOutQuart(t) {
179
+ return t < 0.5 ? 8 * t * t * t * t : 1 - 8 * --t * t * t * t;
180
+ },
181
+ // Quintic
182
+ easeInQuint: function easeInQuint(t) {
183
+ return t * t * t * t * t;
184
+ },
185
+ easeOutQuint: function easeOutQuint(t) {
186
+ return 1 + --t * t * t * t * t;
187
+ },
188
+ easeInOutQuint: function easeInOutQuint(t) {
189
+ return t < 0.5 ? 16 * t * t * t * t * t : 1 + 16 * --t * t * t * t * t;
190
+ },
191
+ // Sine
192
+ easeInSine: function easeInSine(t) {
193
+ return 1 - Math.cos(t * _MathUtils.HALF_PI);
194
+ },
195
+ easeOutSine: function easeOutSine(t) {
196
+ return Math.sin(t * _MathUtils.HALF_PI);
197
+ },
198
+ easeInOutSine: function easeInOutSine(t) {
199
+ return 0.5 * (1 - Math.cos(_MathUtils.PI * t));
200
+ },
201
+ // Exponential
202
+ easeInExpo: function easeInExpo(t) {
203
+ return t === 0 ? 0 : Math.pow(2, 10 * (t - 1));
204
+ },
205
+ easeOutExpo: function easeOutExpo(t) {
206
+ return t === 1 ? 1 : 1 - Math.pow(2, -10 * t);
207
+ },
208
+ easeInOutExpo: function easeInOutExpo(t) {
209
+ if (t === 0) return 0;
210
+ if (t === 1) return 1;
211
+ if (t < 0.5) return 0.5 * Math.pow(2, 10 * (2 * t - 1));
212
+ return 0.5 * (2 - Math.pow(2, -10 * (2 * t - 1)));
213
+ },
214
+ // Circular
215
+ easeInCirc: function easeInCirc(t) {
216
+ return 1 - Math.sqrt(1 - t * t);
217
+ },
218
+ easeOutCirc: function easeOutCirc(t) {
219
+ return Math.sqrt(1 - --t * t);
220
+ },
221
+ easeInOutCirc: function easeInOutCirc(t) {
222
+ t *= 2;
223
+ if (t < 1) return 0.5 * (1 - Math.sqrt(1 - t * t));
224
+ t -= 2;
225
+ return 0.5 * (Math.sqrt(1 - t * t) + 1);
226
+ },
227
+ // Elastic
228
+ easeInElastic: function easeInElastic(t) {
229
+ if (t === 0) return 0;
230
+ if (t === 1) return 1;
231
+ var p = 0.3;
232
+ var s = p / 4;
233
+ return -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * _MathUtils.TWO_PI / p));
234
+ },
235
+ easeOutElastic: function easeOutElastic(t) {
236
+ if (t === 0) return 0;
237
+ if (t === 1) return 1;
238
+ var p = 0.3;
239
+ var s = p / 4;
240
+ return Math.pow(2, -10 * t) * Math.sin((t - s) * _MathUtils.TWO_PI / p) + 1;
241
+ }
242
+ });
243
+ /**
244
+ * Geometry utilities
245
+ */
246
+ _rollupPluginBabelHelpers.defineProperty(MathUtils, "geometry", {
247
+ /**
248
+ * Calculate area of triangle given three points
249
+ * @param {Array} p1 - First point [x, y]
250
+ * @param {Array} p2 - Second point [x, y]
251
+ * @param {Array} p3 - Third point [x, y]
252
+ * @returns {number} Triangle area
253
+ */
254
+ triangleArea: function triangleArea(p1, p2, p3) {
255
+ return 0.5 * Math.abs((p2[0] - p1[0]) * (p3[1] - p1[1]) - (p3[0] - p1[0]) * (p2[1] - p1[1]));
256
+ },
257
+ /**
258
+ * Calculate area of polygon
259
+ * @param {Array} points - Array of points [[x, y], ...]
260
+ * @returns {number} Polygon area
261
+ */
262
+ polygonArea: function polygonArea(points) {
263
+ var area = 0;
264
+ var n = points.length;
265
+ for (var i = 0; i < n; i++) {
266
+ var j = (i + 1) % n;
267
+ area += points[i][0] * points[j][1];
268
+ area -= points[j][0] * points[i][1];
269
+ }
270
+ return Math.abs(area) / 2;
271
+ },
272
+ /**
273
+ * Check if point is inside triangle
274
+ * @param {Array} p - Point to test [x, y]
275
+ * @param {Array} p1 - Triangle vertex 1 [x, y]
276
+ * @param {Array} p2 - Triangle vertex 2 [x, y]
277
+ * @param {Array} p3 - Triangle vertex 3 [x, y]
278
+ * @returns {boolean} Whether point is inside triangle
279
+ */
280
+ pointInTriangle: function pointInTriangle(p, p1, p2, p3) {
281
+ var area = _MathUtils.geometry.triangleArea(p1, p2, p3);
282
+ var area1 = _MathUtils.geometry.triangleArea(p, p2, p3);
283
+ var area2 = _MathUtils.geometry.triangleArea(p1, p, p3);
284
+ var area3 = _MathUtils.geometry.triangleArea(p1, p2, p);
285
+ return Math.abs(area - (area1 + area2 + area3)) < _MathUtils.EPSILON;
286
+ },
287
+ /**
288
+ * Calculate centroid of polygon
289
+ * @param {Array} points - Array of points [[x, y], ...]
290
+ * @returns {Array} Centroid [x, y]
291
+ */
292
+ polygonCentroid: function polygonCentroid(points) {
293
+ var x = 0,
294
+ y = 0;
295
+ var area = 0;
296
+ var n = points.length;
297
+ for (var i = 0; i < n; i++) {
298
+ var j = (i + 1) % n;
299
+ var cross = points[i][0] * points[j][1] - points[j][0] * points[i][1];
300
+ area += cross;
301
+ x += (points[i][0] + points[j][0]) * cross;
302
+ y += (points[i][1] + points[j][1]) * cross;
303
+ }
304
+ area /= 2;
305
+ x /= 6 * area;
306
+ y /= 6 * area;
307
+ return [x, y];
308
+ }
309
+ });
310
+ /**
311
+ * Random utilities
312
+ */
313
+ _rollupPluginBabelHelpers.defineProperty(MathUtils, "random", {
314
+ /**
315
+ * Random float between min and max
316
+ * @param {number} min - Minimum value
317
+ * @param {number} max - Maximum value
318
+ * @returns {number} Random float
319
+ */
320
+ float: function float() {
321
+ var min = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
322
+ var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
323
+ return min + Math.random() * (max - min);
324
+ },
325
+ /**
326
+ * Random integer between min and max (inclusive)
327
+ * @param {number} min - Minimum value
328
+ * @param {number} max - Maximum value
329
+ * @returns {number} Random integer
330
+ */
331
+ int: function int(min, max) {
332
+ return Math.floor(_MathUtils.random.float(min, max + 1));
333
+ },
334
+ /**
335
+ * Random boolean
336
+ * @param {number} probability - Probability of true (0-1)
337
+ * @returns {boolean} Random boolean
338
+ */
339
+ boolean: function boolean() {
340
+ var probability = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0.5;
341
+ return Math.random() < probability;
342
+ },
343
+ /**
344
+ * Random element from array
345
+ * @param {Array} array - Input array
346
+ * @returns {*} Random element
347
+ */
348
+ choice: function choice(array) {
349
+ return array[_MathUtils.random.int(0, array.length - 1)];
350
+ },
351
+ /**
352
+ * Shuffle array (Fisher-Yates)
353
+ * @param {Array} array - Array to shuffle
354
+ * @returns {Array} Shuffled array
355
+ */
356
+ shuffle: function shuffle(array) {
357
+ var result = _rollupPluginBabelHelpers.toConsumableArray(array);
358
+ for (var i = result.length - 1; i > 0; i--) {
359
+ var j = Math.floor(Math.random() * (i + 1));
360
+ var _ref = [result[j], result[i]];
361
+ result[i] = _ref[0];
362
+ result[j] = _ref[1];
363
+ }
364
+ return result;
365
+ },
366
+ /**
367
+ * Random point on unit circle
368
+ * @returns {Array} Point [x, y]
369
+ */
370
+ unitCircle: function unitCircle() {
371
+ var angle = _MathUtils.random.float(0, _MathUtils.TWO_PI);
372
+ return [Math.cos(angle), Math.sin(angle)];
373
+ },
374
+ /**
375
+ * Random point inside unit circle
376
+ * @returns {Array} Point [x, y]
377
+ */
378
+ insideUnitCircle: function insideUnitCircle() {
379
+ var _MathUtils$random$uni = _MathUtils.random.unitCircle(),
380
+ _MathUtils$random$uni2 = _rollupPluginBabelHelpers.slicedToArray(_MathUtils$random$uni, 2),
381
+ x = _MathUtils$random$uni2[0],
382
+ y = _MathUtils$random$uni2[1];
383
+ var r = Math.sqrt(Math.random());
384
+ return [x * r, y * r];
385
+ },
386
+ /**
387
+ * Random point on unit sphere
388
+ * @returns {Array} Point [x, y, z]
389
+ */
390
+ unitSphere: function unitSphere() {
391
+ var u = Math.random();
392
+ var v = Math.random();
393
+ var theta = _MathUtils.TWO_PI * u;
394
+ var phi = Math.acos(2 * v - 1);
395
+ var x = Math.sin(phi) * Math.cos(theta);
396
+ var y = Math.sin(phi) * Math.sin(theta);
397
+ var z = Math.cos(phi);
398
+ return [x, y, z];
399
+ }
400
+ });
401
+ /**
402
+ * Color utilities
403
+ */
404
+ _rollupPluginBabelHelpers.defineProperty(MathUtils, "color", {
405
+ /**
406
+ * Convert HSL to RGB
407
+ * @param {number} h - Hue (0-360)
408
+ * @param {number} s - Saturation (0-1)
409
+ * @param {number} l - Lightness (0-1)
410
+ * @returns {Array} RGB values [r, g, b] (0-255)
411
+ */
412
+ hslToRgb: function hslToRgb(h, s, l) {
413
+ h /= 360;
414
+ var c = (1 - Math.abs(2 * l - 1)) * s;
415
+ var x = c * (1 - Math.abs(h * 6 % 2 - 1));
416
+ var m = l - c / 2;
417
+ var r, g, b;
418
+ if (h < 1 / 6) {
419
+ r = c;
420
+ g = x;
421
+ b = 0;
422
+ } else if (h < 2 / 6) {
423
+ r = x;
424
+ g = c;
425
+ b = 0;
426
+ } else if (h < 3 / 6) {
427
+ r = 0;
428
+ g = c;
429
+ b = x;
430
+ } else if (h < 4 / 6) {
431
+ r = 0;
432
+ g = x;
433
+ b = c;
434
+ } else if (h < 5 / 6) {
435
+ r = x;
436
+ g = 0;
437
+ b = c;
438
+ } else {
439
+ r = c;
440
+ g = 0;
441
+ b = x;
442
+ }
443
+ return [Math.round((r + m) * 255), Math.round((g + m) * 255), Math.round((b + m) * 255)];
444
+ },
445
+ /**
446
+ * Convert RGB to HSL
447
+ * @param {number} r - Red (0-255)
448
+ * @param {number} g - Green (0-255)
449
+ * @param {number} b - Blue (0-255)
450
+ * @returns {Array} HSL values [h, s, l]
451
+ */
452
+ rgbToHsl: function rgbToHsl(r, g, b) {
453
+ r /= 255;
454
+ g /= 255;
455
+ b /= 255;
456
+ var max = Math.max(r, g, b);
457
+ var min = Math.min(r, g, b);
458
+ var l = (max + min) / 2;
459
+ if (max === min) {
460
+ return [0, 0, l]; // Achromatic
461
+ }
462
+ var d = max - min;
463
+ var s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
464
+ var h;
465
+ switch (max) {
466
+ case r:
467
+ h = (g - b) / d + (g < b ? 6 : 0);
468
+ break;
469
+ case g:
470
+ h = (b - r) / d + 2;
471
+ break;
472
+ case b:
473
+ h = (r - g) / d + 4;
474
+ break;
475
+ }
476
+ h /= 6;
477
+ return [h * 360, s, l];
478
+ },
479
+ /**
480
+ * Interpolate between two colors
481
+ * @param {Array} color1 - First color [r, g, b]
482
+ * @param {Array} color2 - Second color [r, g, b]
483
+ * @param {number} t - Interpolation factor (0-1)
484
+ * @returns {Array} Interpolated color [r, g, b]
485
+ */
486
+ lerp: function lerp(color1, color2, t) {
487
+ return [Math.round(_MathUtils.interpolation.linear(color1[0], color2[0], t)), Math.round(_MathUtils.interpolation.linear(color1[1], color2[1], t)), Math.round(_MathUtils.interpolation.linear(color1[2], color2[2], t))];
488
+ }
489
+ });
490
+ /**
491
+ * General utility functions
492
+ */
493
+ _rollupPluginBabelHelpers.defineProperty(MathUtils, "utils", {
494
+ /**
495
+ * Clamp value between min and max
496
+ * @param {number} value - Input value
497
+ * @param {number} min - Minimum value
498
+ * @param {number} max - Maximum value
499
+ * @returns {number} Clamped value
500
+ */
501
+ clamp: function clamp(value, min, max) {
502
+ return Math.max(min, Math.min(max, value));
503
+ },
504
+ /**
505
+ * Map value from one range to another
506
+ * @param {number} value - Input value
507
+ * @param {number} inMin - Input range minimum
508
+ * @param {number} inMax - Input range maximum
509
+ * @param {number} outMin - Output range minimum
510
+ * @param {number} outMax - Output range maximum
511
+ * @returns {number} Mapped value
512
+ */
513
+ map: function map(value, inMin, inMax, outMin, outMax) {
514
+ return outMin + (value - inMin) * (outMax - outMin) / (inMax - inMin);
515
+ },
516
+ /**
517
+ * Check if value is power of 2
518
+ * @param {number} value - Value to check
519
+ * @returns {boolean} Whether value is power of 2
520
+ */
521
+ isPowerOfTwo: function isPowerOfTwo(value) {
522
+ return (value & value - 1) === 0;
523
+ },
524
+ /**
525
+ * Get next power of 2
526
+ * @param {number} value - Input value
527
+ * @returns {number} Next power of 2
528
+ */
529
+ nextPowerOfTwo: function nextPowerOfTwo(value) {
530
+ return Math.pow(2, Math.ceil(Math.log2(value)));
531
+ },
532
+ /**
533
+ * Calculate greatest common divisor
534
+ * @param {number} a - First number
535
+ * @param {number} b - Second number
536
+ * @returns {number} GCD
537
+ */
538
+ gcd: function gcd(a, b) {
539
+ return b === 0 ? a : _MathUtils.utils.gcd(b, a % b);
540
+ },
541
+ /**
542
+ * Calculate least common multiple
543
+ * @param {number} a - First number
544
+ * @param {number} b - Second number
545
+ * @returns {number} LCM
546
+ */
547
+ lcm: function lcm(a, b) {
548
+ return Math.abs(a * b) / _MathUtils.utils.gcd(a, b);
549
+ },
550
+ /**
551
+ * Check if number is approximately equal to another
552
+ * @param {number} a - First number
553
+ * @param {number} b - Second number
554
+ * @param {number} epsilon - Tolerance
555
+ * @returns {boolean} Whether numbers are approximately equal
556
+ */
557
+ approxEqual: function approxEqual(a, b) {
558
+ var epsilon = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _MathUtils.EPSILON;
559
+ return Math.abs(a - b) < epsilon;
560
+ },
561
+ /**
562
+ * Round to specified decimal places
563
+ * @param {number} value - Input value
564
+ * @param {number} decimals - Number of decimal places
565
+ * @returns {number} Rounded value
566
+ */
567
+ round: function round(value) {
568
+ var decimals = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
569
+ var factor = Math.pow(10, decimals);
570
+ return Math.round(value * factor) / factor;
571
+ }
572
+ });
573
+
574
+ exports.MathUtils = MathUtils;
@@ -1 +1,93 @@
1
- "use strict";function n(n){if(!n)return null;var r=n.toUpperCase().replace(/\s+COMPONENT$/i,"").replace(/\s+/g,"-").replace(/[^A-Z0-9\-]/g,"");return r=r.replace(/-COMPONENT$/,"")}Object.defineProperty(exports,"u",{value:!0}),exports.findObjectByHardcodedUuid=function(r,u){if(!r||!u)return null;var e=null;return r.traverse(function(r){var l;if(!e)if(r.uuid!==u)if((null===(l=r.userData)||void 0===l?void 0:l.originalUuid)!==u){if(r.name&&n(r.name)===u)return void(e=r)}else e=r;else e=r}),e},exports.generateUuidFromName=n,exports.getHardcodedUuid=function(r){var u;return r?null!==(u=r.userData)&&void 0!==u&&u.originalUuid?r.userData.originalUuid:r.uuid&&!r.uuid.includes("-")&&r.uuid.length>10?r.uuid:r.name?n(r.name):null:null};
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /**
6
+ * Name Utilities
7
+ * Common helper functions for name and UUID generation
8
+ */
9
+
10
+ /**
11
+ * Generate UUID from name using consistent transformation rules
12
+ * @param {string} name - The name to convert to UUID
13
+ * @returns {string} The generated UUID
14
+ */
15
+ function generateUuidFromName(name) {
16
+ if (!name) return null;
17
+
18
+ // Convert name to uppercase and replace spaces with hyphens
19
+ var uuid = name.toUpperCase().replace(/\s+COMPONENT$/i, '') // Remove "Component" suffix
20
+ .replace(/\s+/g, '-') // Replace spaces with hyphens
21
+ .replace(/[^A-Z0-9\-]/g, ''); // Remove special characters except hyphens
22
+
23
+ // Clean up any duplicate "COMPONENT" text that might have been left behind
24
+ uuid = uuid.replace(/-COMPONENT$/, '');
25
+ return uuid;
26
+ }
27
+
28
+ /**
29
+ * Find an object in a Three.js scene by hardcoded UUID with fallback strategies
30
+ * @param {THREE.Scene} scene - The Three.js scene to search
31
+ * @param {string} targetUuid - The UUID to search for
32
+ * @returns {THREE.Object3D|null} The found object or null
33
+ */
34
+ function findObjectByHardcodedUuid(scene, targetUuid) {
35
+ if (!scene || !targetUuid) return null;
36
+ var foundObject = null;
37
+ scene.traverse(function (child) {
38
+ var _child$userData;
39
+ if (foundObject) return; // Stop if already found
40
+
41
+ // Strategy 1: Direct UUID match (HIGHEST PRIORITY)
42
+ if (child.uuid === targetUuid) {
43
+ foundObject = child;
44
+ return;
45
+ }
46
+
47
+ // Strategy 2: Original hardcoded UUID match
48
+ if (((_child$userData = child.userData) === null || _child$userData === void 0 ? void 0 : _child$userData.originalUuid) === targetUuid) {
49
+ foundObject = child;
50
+ return;
51
+ }
52
+
53
+ // Strategy 3: Name-based UUID match (FALLBACK)
54
+ if (child.name) {
55
+ var generatedUuid = generateUuidFromName(child.name);
56
+ if (generatedUuid === targetUuid) {
57
+ foundObject = child;
58
+ return;
59
+ }
60
+ }
61
+ });
62
+ return foundObject;
63
+ }
64
+
65
+ /**
66
+ * Get the hardcoded UUID for an object, prioritizing original over current
67
+ * @param {THREE.Object3D} object - The Three.js object
68
+ * @returns {string|null} The hardcoded UUID or null
69
+ */
70
+ function getHardcodedUuid(object) {
71
+ var _object$userData;
72
+ if (!object) return null;
73
+
74
+ // Priority 1: Original hardcoded UUID stored in userData
75
+ if ((_object$userData = object.userData) !== null && _object$userData !== void 0 && _object$userData.originalUuid) {
76
+ return object.userData.originalUuid;
77
+ }
78
+
79
+ // Priority 2: Current UUID (if it looks like a hardcoded one)
80
+ if (object.uuid && !object.uuid.includes('-') && object.uuid.length > 10) {
81
+ return object.uuid;
82
+ }
83
+
84
+ // Priority 3: Generate from name if available
85
+ if (object.name) {
86
+ return generateUuidFromName(object.name);
87
+ }
88
+ return null;
89
+ }
90
+
91
+ exports.findObjectByHardcodedUuid = findObjectByHardcodedUuid;
92
+ exports.generateUuidFromName = generateUuidFromName;
93
+ exports.getHardcodedUuid = getHardcodedUuid;