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