@2112-lab/central-plant 0.3.50 → 0.3.52
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.
- package/dist/bundle/index.js +337 -119
- package/dist/cjs/src/core/centralPlant.js +1 -1
- package/dist/cjs/src/managers/controls/transformControls.js +68 -30
- package/dist/cjs/src/managers/controls/transformControlsManager.js +265 -87
- package/dist/cjs/src/managers/pathfinding/pathfindingManager.js +3 -1
- package/dist/esm/src/core/centralPlant.js +1 -1
- package/dist/esm/src/managers/controls/transformControls.js +69 -31
- package/dist/esm/src/managers/controls/transformControlsManager.js +265 -87
- package/dist/esm/src/managers/pathfinding/pathfindingManager.js +3 -1
- package/package.json +2 -2
|
@@ -264,6 +264,7 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
264
264
|
this.eventHandlers.transformStart = function () {
|
|
265
265
|
console.log("transformControls transformStart");
|
|
266
266
|
_this2.transformState.isTransforming = true;
|
|
267
|
+
_this2._suppressNextClick = true;
|
|
267
268
|
|
|
268
269
|
// Store initial transforms for all selected objects
|
|
269
270
|
if (_this2.selectedObjects.length > 0) {
|
|
@@ -467,6 +468,10 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
467
468
|
// Translate mode
|
|
468
469
|
_this3.setMode('translate');
|
|
469
470
|
break;
|
|
471
|
+
case 'KeyR':
|
|
472
|
+
// Rotate mode
|
|
473
|
+
_this3.setMode('rotate');
|
|
474
|
+
break;
|
|
470
475
|
}
|
|
471
476
|
};
|
|
472
477
|
window.addEventListener('keydown', this.eventHandlers.keydown);
|
|
@@ -651,8 +656,16 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
651
656
|
}
|
|
652
657
|
|
|
653
658
|
// Left-click: select for transform only (bounding box, no tooltip)
|
|
659
|
+
var isComponent = objectType === 'component';
|
|
660
|
+
var isSameSingleSelection = isComponent && _this4.selectedObjects.length === 1 && _this4.selectedObjects[0] === targetObject;
|
|
661
|
+
if (isSameSingleSelection) {
|
|
662
|
+
_this4.toggleTransformMode();
|
|
663
|
+
return;
|
|
664
|
+
}
|
|
654
665
|
if (!_this4.selectedObjects.includes(targetObject)) {
|
|
655
666
|
_this4.deselectObject();
|
|
667
|
+
} else if (!isComponent) {
|
|
668
|
+
_this4.setMode('translate');
|
|
656
669
|
}
|
|
657
670
|
_this4.selectObjectForTransformOnly(targetObject);
|
|
658
671
|
};
|
|
@@ -1324,6 +1337,7 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
1324
1337
|
this._hideTransformControls();
|
|
1325
1338
|
console.log("\uD83D\uDD12 Transform controls hidden after deselection");
|
|
1326
1339
|
}
|
|
1340
|
+
this.setMode('translate');
|
|
1327
1341
|
|
|
1328
1342
|
// Execute callback
|
|
1329
1343
|
if (this.callbacks.onObjectSelect) {
|
|
@@ -1486,14 +1500,14 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
1486
1500
|
}, {
|
|
1487
1501
|
key: "setMode",
|
|
1488
1502
|
value: function setMode(mode) {
|
|
1489
|
-
|
|
1490
|
-
if (mode !== 'translate') {
|
|
1503
|
+
if (mode !== 'translate' && mode !== 'rotate') {
|
|
1491
1504
|
console.warn("\u26A0\uFE0F Transform mode ".concat(mode, " is disabled. Locking to translate."));
|
|
1492
1505
|
mode = 'translate';
|
|
1493
1506
|
}
|
|
1494
1507
|
var previousMode = this.currentMode;
|
|
1495
1508
|
this.currentMode = mode;
|
|
1496
1509
|
this.transformControls.setMode(mode);
|
|
1510
|
+
this._updateAxisVisibilityForMode(mode);
|
|
1497
1511
|
|
|
1498
1512
|
// Execute callback
|
|
1499
1513
|
if (this.callbacks.onModeChange) {
|
|
@@ -1502,6 +1516,47 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
1502
1516
|
console.log("\uD83D\uDD27 Transform mode changed: ".concat(previousMode, " \u2192 ").concat(mode));
|
|
1503
1517
|
}
|
|
1504
1518
|
|
|
1519
|
+
/**
|
|
1520
|
+
* Update gizmo axis visibility based on transform mode.
|
|
1521
|
+
* Rotation shows all rings but only Z-axis is interactive.
|
|
1522
|
+
* @param {'translate' | 'rotate'} mode
|
|
1523
|
+
* @private
|
|
1524
|
+
*/
|
|
1525
|
+
}, {
|
|
1526
|
+
key: "_updateAxisVisibilityForMode",
|
|
1527
|
+
value: function _updateAxisVisibilityForMode(mode) {
|
|
1528
|
+
if (!this.transformControls) return;
|
|
1529
|
+
if (mode === 'rotate') {
|
|
1530
|
+
this.transformControls.showX = true;
|
|
1531
|
+
this.transformControls.showY = true;
|
|
1532
|
+
this.transformControls.showZ = true;
|
|
1533
|
+
this.transformControls.pickX = false;
|
|
1534
|
+
this.transformControls.pickY = false;
|
|
1535
|
+
this.transformControls.pickZ = true;
|
|
1536
|
+
return;
|
|
1537
|
+
}
|
|
1538
|
+
this.transformControls.showX = this.config.showX;
|
|
1539
|
+
this.transformControls.showY = this.config.showY;
|
|
1540
|
+
this.transformControls.showZ = this.config.showZ;
|
|
1541
|
+
this.transformControls.pickX = true;
|
|
1542
|
+
this.transformControls.pickY = true;
|
|
1543
|
+
this.transformControls.pickZ = true;
|
|
1544
|
+
}
|
|
1545
|
+
|
|
1546
|
+
/**
|
|
1547
|
+
* Toggle between translate and rotate transform modes
|
|
1548
|
+
*/
|
|
1549
|
+
}, {
|
|
1550
|
+
key: "toggleTransformMode",
|
|
1551
|
+
value: function toggleTransformMode() {
|
|
1552
|
+
var _this$transformContro;
|
|
1553
|
+
var newMode = this.currentMode === 'translate' ? 'rotate' : 'translate';
|
|
1554
|
+
this.setMode(newMode);
|
|
1555
|
+
if ((_this$transformContro = this.transformControls) !== null && _this$transformContro !== void 0 && _this$transformContro.object) {
|
|
1556
|
+
this.transformControls.updateMatrixWorld(true);
|
|
1557
|
+
}
|
|
1558
|
+
}
|
|
1559
|
+
|
|
1505
1560
|
/**
|
|
1506
1561
|
* Set the transformation space
|
|
1507
1562
|
* @param {'world' | 'local'} space - The transformation space
|
|
@@ -1940,12 +1995,10 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
1940
1995
|
obj.position.copy(newWorldPos);
|
|
1941
1996
|
obj.updateMatrix();
|
|
1942
1997
|
} else if (_this8.currentMode === 'rotate') {
|
|
1943
|
-
// Calculate offset from centroid
|
|
1998
|
+
// Calculate offset from centroid (Z-axis rotation only)
|
|
1944
1999
|
var offsetFromCentroid = originalWorldPos.clone().sub(originalCentroid);
|
|
1945
|
-
|
|
1946
|
-
// Rotate the offset vector
|
|
1947
2000
|
var rotatedOffset = offsetFromCentroid.clone();
|
|
1948
|
-
var rotationQuat = new THREE__namespace.Quaternion().
|
|
2001
|
+
var rotationQuat = new THREE__namespace.Quaternion().setFromAxisAngle(new THREE__namespace.Vector3(0, 0, 1), rotationDelta.z);
|
|
1949
2002
|
rotatedOffset.applyQuaternion(rotationQuat);
|
|
1950
2003
|
|
|
1951
2004
|
// Calculate new world position
|
|
@@ -1961,9 +2014,9 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
1961
2014
|
}
|
|
1962
2015
|
obj.position.copy(_newWorldPos);
|
|
1963
2016
|
|
|
1964
|
-
// Apply rotation
|
|
1965
|
-
obj.rotation.x = originalRot.x
|
|
1966
|
-
obj.rotation.y = originalRot.y
|
|
2017
|
+
// Apply Z-axis rotation only
|
|
2018
|
+
obj.rotation.x = originalRot.x;
|
|
2019
|
+
obj.rotation.y = originalRot.y;
|
|
1967
2020
|
obj.rotation.z = originalRot.z + rotationDelta.z;
|
|
1968
2021
|
obj.updateMatrix();
|
|
1969
2022
|
}
|
|
@@ -1993,7 +2046,15 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
1993
2046
|
return _context2.a(2);
|
|
1994
2047
|
case 1:
|
|
1995
2048
|
console.log("\uD83D\uDD27 Applying multi-selection transform to ".concat(this.selectedObjects.length, " objects"));
|
|
1996
|
-
|
|
2049
|
+
if (!(this.currentMode === 'rotate')) {
|
|
2050
|
+
_context2.n = 3;
|
|
2051
|
+
break;
|
|
2052
|
+
}
|
|
2053
|
+
_context2.n = 2;
|
|
2054
|
+
return this._applyMultiSelectionRotation();
|
|
2055
|
+
case 2:
|
|
2056
|
+
return _context2.a(2);
|
|
2057
|
+
case 3:
|
|
1997
2058
|
// Calculate transformation deltas
|
|
1998
2059
|
_this$_calculateTrans = this._calculateTransformDeltas(), deltaX = _this$_calculateTrans.deltaX, deltaY = _this$_calculateTrans.deltaY, deltaZ = _this$_calculateTrans.deltaZ, threshold = _this$_calculateTrans.threshold;
|
|
1999
2060
|
console.log('🔧 Transform delta:', {
|
|
@@ -2003,12 +2064,12 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2003
2064
|
});
|
|
2004
2065
|
|
|
2005
2066
|
// Only process if there's a meaningful translation
|
|
2006
|
-
if (!(
|
|
2007
|
-
_context2.n =
|
|
2067
|
+
if (!(Math.abs(deltaX) < threshold && Math.abs(deltaY) < threshold && Math.abs(deltaZ) < threshold)) {
|
|
2068
|
+
_context2.n = 4;
|
|
2008
2069
|
break;
|
|
2009
2070
|
}
|
|
2010
2071
|
return _context2.a(2);
|
|
2011
|
-
case
|
|
2072
|
+
case 4:
|
|
2012
2073
|
// Reset all objects to original positions
|
|
2013
2074
|
this._resetObjectsToOriginalPositions();
|
|
2014
2075
|
|
|
@@ -2022,20 +2083,20 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2022
2083
|
components = this.selectedObjects.filter(function (obj) {
|
|
2023
2084
|
return !objectTypes.isSegment(obj) && !objectTypes.isGateway(obj);
|
|
2024
2085
|
}); // Translate each object type
|
|
2025
|
-
_context2.n =
|
|
2086
|
+
_context2.n = 5;
|
|
2026
2087
|
return this._translateSegments(segments, deltaX, deltaY, deltaZ, threshold);
|
|
2027
|
-
case
|
|
2028
|
-
_context2.n =
|
|
2088
|
+
case 5:
|
|
2089
|
+
_context2.n = 6;
|
|
2029
2090
|
return this._translateGateways(gateways, deltaX, deltaY, deltaZ, threshold);
|
|
2030
|
-
case
|
|
2031
|
-
_context2.n =
|
|
2091
|
+
case 6:
|
|
2092
|
+
_context2.n = 7;
|
|
2032
2093
|
return this._translateComponents(components, deltaX, deltaY, deltaZ, threshold);
|
|
2033
|
-
case
|
|
2094
|
+
case 7:
|
|
2034
2095
|
console.log("\u2705 All ".concat(this.selectedObjects.length, " objects translated"));
|
|
2035
2096
|
|
|
2036
2097
|
// Cleanup and refresh
|
|
2037
2098
|
this._finalizeMultiSelectionTransform();
|
|
2038
|
-
case
|
|
2099
|
+
case 8:
|
|
2039
2100
|
return _context2.a(2);
|
|
2040
2101
|
}
|
|
2041
2102
|
}, _callee2, this);
|
|
@@ -2045,6 +2106,123 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2045
2106
|
}
|
|
2046
2107
|
return applyMultiSelectionTransform;
|
|
2047
2108
|
}()
|
|
2109
|
+
/**
|
|
2110
|
+
* Apply rotation from multi-selection group to selected components via API
|
|
2111
|
+
* @private
|
|
2112
|
+
*/
|
|
2113
|
+
)
|
|
2114
|
+
}, {
|
|
2115
|
+
key: "_applyMultiSelectionRotation",
|
|
2116
|
+
value: (function () {
|
|
2117
|
+
var _applyMultiSelectionRotation2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee3() {
|
|
2118
|
+
var threshold, rotationDeltas, _iterator6, _step6, _obj2, originalRot, originalPos, _deltaRad, _i, _rotationDeltas, _obj$userData5, _obj$userData6, _obj$userData7, _this$centralPlant, _rotationDeltas$_i, obj, deltaRad, componentId, deltaDeg, snappedDeg, _t;
|
|
2119
|
+
return _rollupPluginBabelHelpers.regenerator().w(function (_context3) {
|
|
2120
|
+
while (1) switch (_context3.n) {
|
|
2121
|
+
case 0:
|
|
2122
|
+
threshold = 0.001;
|
|
2123
|
+
rotationDeltas = [];
|
|
2124
|
+
_iterator6 = _rollupPluginBabelHelpers.createForOfIteratorHelper(this.selectedObjects);
|
|
2125
|
+
_context3.p = 1;
|
|
2126
|
+
_iterator6.s();
|
|
2127
|
+
case 2:
|
|
2128
|
+
if ((_step6 = _iterator6.n()).done) {
|
|
2129
|
+
_context3.n = 6;
|
|
2130
|
+
break;
|
|
2131
|
+
}
|
|
2132
|
+
_obj2 = _step6.value;
|
|
2133
|
+
originalRot = _obj2.userData._multiSelectOriginalRotation;
|
|
2134
|
+
originalPos = _obj2.userData._multiSelectOriginalPosition;
|
|
2135
|
+
if (originalRot) {
|
|
2136
|
+
_context3.n = 3;
|
|
2137
|
+
break;
|
|
2138
|
+
}
|
|
2139
|
+
return _context3.a(3, 5);
|
|
2140
|
+
case 3:
|
|
2141
|
+
_deltaRad = _obj2.rotation.z - originalRot.z;
|
|
2142
|
+
if (!(Math.abs(_deltaRad) < threshold)) {
|
|
2143
|
+
_context3.n = 4;
|
|
2144
|
+
break;
|
|
2145
|
+
}
|
|
2146
|
+
return _context3.a(3, 5);
|
|
2147
|
+
case 4:
|
|
2148
|
+
rotationDeltas.push({
|
|
2149
|
+
obj: _obj2,
|
|
2150
|
+
originalPos: originalPos === null || originalPos === void 0 ? void 0 : originalPos.clone(),
|
|
2151
|
+
originalRot: originalRot.clone(),
|
|
2152
|
+
deltaRad: _deltaRad
|
|
2153
|
+
});
|
|
2154
|
+
case 5:
|
|
2155
|
+
_context3.n = 2;
|
|
2156
|
+
break;
|
|
2157
|
+
case 6:
|
|
2158
|
+
_context3.n = 8;
|
|
2159
|
+
break;
|
|
2160
|
+
case 7:
|
|
2161
|
+
_context3.p = 7;
|
|
2162
|
+
_t = _context3.v;
|
|
2163
|
+
_iterator6.e(_t);
|
|
2164
|
+
case 8:
|
|
2165
|
+
_context3.p = 8;
|
|
2166
|
+
_iterator6.f();
|
|
2167
|
+
return _context3.f(8);
|
|
2168
|
+
case 9:
|
|
2169
|
+
if (!(rotationDeltas.length === 0)) {
|
|
2170
|
+
_context3.n = 10;
|
|
2171
|
+
break;
|
|
2172
|
+
}
|
|
2173
|
+
return _context3.a(2);
|
|
2174
|
+
case 10:
|
|
2175
|
+
rotationDeltas.forEach(function (_ref2) {
|
|
2176
|
+
var obj = _ref2.obj,
|
|
2177
|
+
originalPos = _ref2.originalPos,
|
|
2178
|
+
originalRot = _ref2.originalRot;
|
|
2179
|
+
if (originalPos) {
|
|
2180
|
+
obj.position.copy(originalPos);
|
|
2181
|
+
}
|
|
2182
|
+
obj.rotation.copy(originalRot);
|
|
2183
|
+
obj.updateMatrixWorld(true);
|
|
2184
|
+
});
|
|
2185
|
+
_i = 0, _rotationDeltas = rotationDeltas;
|
|
2186
|
+
case 11:
|
|
2187
|
+
if (!(_i < _rotationDeltas.length)) {
|
|
2188
|
+
_context3.n = 15;
|
|
2189
|
+
break;
|
|
2190
|
+
}
|
|
2191
|
+
_rotationDeltas$_i = _rotationDeltas[_i], obj = _rotationDeltas$_i.obj, deltaRad = _rotationDeltas$_i.deltaRad;
|
|
2192
|
+
if (!(((_obj$userData5 = obj.userData) === null || _obj$userData5 === void 0 ? void 0 : _obj$userData5.objectType) !== 'component' || !((_obj$userData6 = obj.userData) !== null && _obj$userData6 !== void 0 && _obj$userData6.libraryId))) {
|
|
2193
|
+
_context3.n = 12;
|
|
2194
|
+
break;
|
|
2195
|
+
}
|
|
2196
|
+
return _context3.a(3, 14);
|
|
2197
|
+
case 12:
|
|
2198
|
+
componentId = obj.uuid || ((_obj$userData7 = obj.userData) === null || _obj$userData7 === void 0 ? void 0 : _obj$userData7.originalUuid);
|
|
2199
|
+
if (!(!componentId || !((_this$centralPlant = this.centralPlant) !== null && _this$centralPlant !== void 0 && _this$centralPlant.rotate))) {
|
|
2200
|
+
_context3.n = 13;
|
|
2201
|
+
break;
|
|
2202
|
+
}
|
|
2203
|
+
return _context3.a(3, 14);
|
|
2204
|
+
case 13:
|
|
2205
|
+
deltaDeg = THREE__namespace.MathUtils.radToDeg(deltaRad);
|
|
2206
|
+
snappedDeg = Math.round(deltaDeg / 90) * 90;
|
|
2207
|
+
if (Math.abs(snappedDeg) >= 90) {
|
|
2208
|
+
this.centralPlant.rotate(componentId, 'z', snappedDeg);
|
|
2209
|
+
}
|
|
2210
|
+
case 14:
|
|
2211
|
+
_i++;
|
|
2212
|
+
_context3.n = 11;
|
|
2213
|
+
break;
|
|
2214
|
+
case 15:
|
|
2215
|
+
this._finalizeMultiSelectionTransform();
|
|
2216
|
+
case 16:
|
|
2217
|
+
return _context3.a(2);
|
|
2218
|
+
}
|
|
2219
|
+
}, _callee3, this, [[1, 7, 8, 9]]);
|
|
2220
|
+
}));
|
|
2221
|
+
function _applyMultiSelectionRotation() {
|
|
2222
|
+
return _applyMultiSelectionRotation2.apply(this, arguments);
|
|
2223
|
+
}
|
|
2224
|
+
return _applyMultiSelectionRotation;
|
|
2225
|
+
}()
|
|
2048
2226
|
/**
|
|
2049
2227
|
* Calculate transformation deltas from multi-selection group
|
|
2050
2228
|
* @returns {Object} Delta values and threshold
|
|
@@ -2100,17 +2278,17 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2100
2278
|
}, {
|
|
2101
2279
|
key: "_translateSegments",
|
|
2102
2280
|
value: (function () {
|
|
2103
|
-
var _translateSegments2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function
|
|
2281
|
+
var _translateSegments2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee4(segments, deltaX, deltaY, deltaZ, threshold) {
|
|
2104
2282
|
var _this$sceneViewer, _this$sceneViewer2;
|
|
2105
|
-
var transformOpsManager, useOptimizedPath, throttleDelay, AXIS_THROTTLE, OBJECT_DELAY, i, segment, axes,
|
|
2106
|
-
return _rollupPluginBabelHelpers.regenerator().w(function (
|
|
2107
|
-
while (1) switch (
|
|
2283
|
+
var transformOpsManager, useOptimizedPath, throttleDelay, AXIS_THROTTLE, OBJECT_DELAY, i, segment, axes, _i2, _axes, _axes$_i, axis, delta;
|
|
2284
|
+
return _rollupPluginBabelHelpers.regenerator().w(function (_context4) {
|
|
2285
|
+
while (1) switch (_context4.n) {
|
|
2108
2286
|
case 0:
|
|
2109
2287
|
if (!(segments.length === 0)) {
|
|
2110
|
-
|
|
2288
|
+
_context4.n = 1;
|
|
2111
2289
|
break;
|
|
2112
2290
|
}
|
|
2113
|
-
return
|
|
2291
|
+
return _context4.a(2);
|
|
2114
2292
|
case 1:
|
|
2115
2293
|
transformOpsManager = (_this$sceneViewer = this.sceneViewer) === null || _this$sceneViewer === void 0 ? void 0 : _this$sceneViewer.transformOperationsManager;
|
|
2116
2294
|
useOptimizedPath = transformOpsManager != null;
|
|
@@ -2129,7 +2307,7 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2129
2307
|
i = 0;
|
|
2130
2308
|
case 2:
|
|
2131
2309
|
if (!(i < segments.length)) {
|
|
2132
|
-
|
|
2310
|
+
_context4.n = 8;
|
|
2133
2311
|
break;
|
|
2134
2312
|
}
|
|
2135
2313
|
segment = segments[i];
|
|
@@ -2143,26 +2321,26 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2143
2321
|
axis: 'z',
|
|
2144
2322
|
delta: deltaZ
|
|
2145
2323
|
}]; // Translate on each axis
|
|
2146
|
-
|
|
2324
|
+
_i2 = 0, _axes = axes;
|
|
2147
2325
|
case 3:
|
|
2148
|
-
if (!(
|
|
2149
|
-
|
|
2326
|
+
if (!(_i2 < _axes.length)) {
|
|
2327
|
+
_context4.n = 6;
|
|
2150
2328
|
break;
|
|
2151
2329
|
}
|
|
2152
|
-
_axes$_i = _axes[
|
|
2330
|
+
_axes$_i = _axes[_i2], axis = _axes$_i.axis, delta = _axes$_i.delta;
|
|
2153
2331
|
if (!(Math.abs(delta) > threshold)) {
|
|
2154
|
-
|
|
2332
|
+
_context4.n = 5;
|
|
2155
2333
|
break;
|
|
2156
2334
|
}
|
|
2157
|
-
|
|
2335
|
+
_context4.n = 4;
|
|
2158
2336
|
return this._translateSegmentOnAxis(segment, axis, delta, useOptimizedPath, i);
|
|
2159
2337
|
case 4:
|
|
2160
|
-
segment =
|
|
2161
|
-
|
|
2338
|
+
segment = _context4.v;
|
|
2339
|
+
_context4.n = 5;
|
|
2162
2340
|
return throttleDelay(AXIS_THROTTLE);
|
|
2163
2341
|
case 5:
|
|
2164
|
-
|
|
2165
|
-
|
|
2342
|
+
_i2++;
|
|
2343
|
+
_context4.n = 3;
|
|
2166
2344
|
break;
|
|
2167
2345
|
case 6:
|
|
2168
2346
|
// Update selected objects array with refreshed reference
|
|
@@ -2173,14 +2351,14 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2173
2351
|
console.warn("\u26A0\uFE0F Segment reference became null (".concat(i + 1, "/").concat(segments.length, ")"));
|
|
2174
2352
|
}
|
|
2175
2353
|
if (!(i < segments.length - 1)) {
|
|
2176
|
-
|
|
2354
|
+
_context4.n = 7;
|
|
2177
2355
|
break;
|
|
2178
2356
|
}
|
|
2179
|
-
|
|
2357
|
+
_context4.n = 7;
|
|
2180
2358
|
return throttleDelay(OBJECT_DELAY);
|
|
2181
2359
|
case 7:
|
|
2182
2360
|
i++;
|
|
2183
|
-
|
|
2361
|
+
_context4.n = 2;
|
|
2184
2362
|
break;
|
|
2185
2363
|
case 8:
|
|
2186
2364
|
// Batch update paths for optimized path only
|
|
@@ -2190,9 +2368,9 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2190
2368
|
console.log('✅ Paths regenerated successfully');
|
|
2191
2369
|
}
|
|
2192
2370
|
case 9:
|
|
2193
|
-
return
|
|
2371
|
+
return _context4.a(2);
|
|
2194
2372
|
}
|
|
2195
|
-
},
|
|
2373
|
+
}, _callee4, this);
|
|
2196
2374
|
}));
|
|
2197
2375
|
function _translateSegments(_x, _x2, _x3, _x4, _x5) {
|
|
2198
2376
|
return _translateSegments2.apply(this, arguments);
|
|
@@ -2231,11 +2409,11 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2231
2409
|
}, {
|
|
2232
2410
|
key: "_translateSegmentOnAxis",
|
|
2233
2411
|
value: (function () {
|
|
2234
|
-
var _translateSegmentOnAxis2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function
|
|
2412
|
+
var _translateSegmentOnAxis2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee5(segment, axis, delta, useOptimizedPath, index) {
|
|
2235
2413
|
var _segment$userData3;
|
|
2236
2414
|
var segmentId, success;
|
|
2237
|
-
return _rollupPluginBabelHelpers.regenerator().w(function (
|
|
2238
|
-
while (1) switch (
|
|
2415
|
+
return _rollupPluginBabelHelpers.regenerator().w(function (_context5) {
|
|
2416
|
+
while (1) switch (_context5.n) {
|
|
2239
2417
|
case 0:
|
|
2240
2418
|
segmentId = segment.uuid || ((_segment$userData3 = segment.userData) === null || _segment$userData3 === void 0 ? void 0 : _segment$userData3.originalUuid);
|
|
2241
2419
|
if (useOptimizedPath) {
|
|
@@ -2248,9 +2426,9 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2248
2426
|
}
|
|
2249
2427
|
|
|
2250
2428
|
// Refresh segment reference after manualization
|
|
2251
|
-
return
|
|
2429
|
+
return _context5.a(2, this._refreshSegmentReference(segment));
|
|
2252
2430
|
}
|
|
2253
|
-
},
|
|
2431
|
+
}, _callee5, this);
|
|
2254
2432
|
}));
|
|
2255
2433
|
function _translateSegmentOnAxis(_x6, _x7, _x8, _x9, _x0) {
|
|
2256
2434
|
return _translateSegmentOnAxis2.apply(this, arguments);
|
|
@@ -2266,8 +2444,8 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2266
2444
|
key: "_updateSegmentReference",
|
|
2267
2445
|
value: function _updateSegmentReference(oldSegment, newSegment, index) {
|
|
2268
2446
|
var selectedIndex = this.selectedObjects.findIndex(function (obj) {
|
|
2269
|
-
var _obj$
|
|
2270
|
-
return obj.uuid === oldSegment.uuid || ((_obj$
|
|
2447
|
+
var _obj$userData8;
|
|
2448
|
+
return obj.uuid === oldSegment.uuid || ((_obj$userData8 = obj.userData) === null || _obj$userData8 === void 0 ? void 0 : _obj$userData8.originalUuid) === oldSegment.uuid;
|
|
2271
2449
|
});
|
|
2272
2450
|
if (selectedIndex !== -1 && newSegment) {
|
|
2273
2451
|
// Clear bounding box cache
|
|
@@ -2285,17 +2463,17 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2285
2463
|
}, {
|
|
2286
2464
|
key: "_translateGateways",
|
|
2287
2465
|
value: (function () {
|
|
2288
|
-
var _translateGateways2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function
|
|
2466
|
+
var _translateGateways2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee6(gateways, deltaX, deltaY, deltaZ, threshold) {
|
|
2289
2467
|
var _this9 = this;
|
|
2290
2468
|
var throttleDelay, AXIS_THROTTLE, OBJECT_DELAY, i, _gateway$userData, gateway, gatewayId;
|
|
2291
|
-
return _rollupPluginBabelHelpers.regenerator().w(function (
|
|
2292
|
-
while (1) switch (
|
|
2469
|
+
return _rollupPluginBabelHelpers.regenerator().w(function (_context6) {
|
|
2470
|
+
while (1) switch (_context6.n) {
|
|
2293
2471
|
case 0:
|
|
2294
2472
|
if (!(gateways.length === 0)) {
|
|
2295
|
-
|
|
2473
|
+
_context6.n = 1;
|
|
2296
2474
|
break;
|
|
2297
2475
|
}
|
|
2298
|
-
return
|
|
2476
|
+
return _context6.a(2);
|
|
2299
2477
|
case 1:
|
|
2300
2478
|
throttleDelay = function throttleDelay(ms) {
|
|
2301
2479
|
return new Promise(function (resolve) {
|
|
@@ -2307,31 +2485,31 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2307
2485
|
i = 0;
|
|
2308
2486
|
case 2:
|
|
2309
2487
|
if (!(i < gateways.length)) {
|
|
2310
|
-
|
|
2488
|
+
_context6.n = 5;
|
|
2311
2489
|
break;
|
|
2312
2490
|
}
|
|
2313
2491
|
gateway = gateways[i];
|
|
2314
2492
|
gatewayId = gateway.uuid || ((_gateway$userData = gateway.userData) === null || _gateway$userData === void 0 ? void 0 : _gateway$userData.originalUuid);
|
|
2315
|
-
|
|
2493
|
+
_context6.n = 3;
|
|
2316
2494
|
return this._translateObjectOnAxes(gatewayId, deltaX, deltaY, deltaZ, threshold, throttleDelay, AXIS_THROTTLE, function (id, axis, delta) {
|
|
2317
2495
|
return _this9.centralPlant.translateGateway(id, axis, delta);
|
|
2318
2496
|
});
|
|
2319
2497
|
case 3:
|
|
2320
2498
|
console.log("\uD83D\uDEAA Gateway ".concat(gateway.name, " translated (").concat(i + 1, "/").concat(gateways.length, ")"));
|
|
2321
2499
|
if (!(i < gateways.length - 1)) {
|
|
2322
|
-
|
|
2500
|
+
_context6.n = 4;
|
|
2323
2501
|
break;
|
|
2324
2502
|
}
|
|
2325
|
-
|
|
2503
|
+
_context6.n = 4;
|
|
2326
2504
|
return throttleDelay(OBJECT_DELAY);
|
|
2327
2505
|
case 4:
|
|
2328
2506
|
i++;
|
|
2329
|
-
|
|
2507
|
+
_context6.n = 2;
|
|
2330
2508
|
break;
|
|
2331
2509
|
case 5:
|
|
2332
|
-
return
|
|
2510
|
+
return _context6.a(2);
|
|
2333
2511
|
}
|
|
2334
|
-
},
|
|
2512
|
+
}, _callee6, this);
|
|
2335
2513
|
}));
|
|
2336
2514
|
function _translateGateways(_x1, _x10, _x11, _x12, _x13) {
|
|
2337
2515
|
return _translateGateways2.apply(this, arguments);
|
|
@@ -2346,17 +2524,17 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2346
2524
|
}, {
|
|
2347
2525
|
key: "_translateComponents",
|
|
2348
2526
|
value: (function () {
|
|
2349
|
-
var _translateComponents2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function
|
|
2527
|
+
var _translateComponents2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee7(components, deltaX, deltaY, deltaZ, threshold) {
|
|
2350
2528
|
var _this0 = this;
|
|
2351
2529
|
var throttleDelay, AXIS_THROTTLE, OBJECT_DELAY, i, _component$userData, component, componentId;
|
|
2352
|
-
return _rollupPluginBabelHelpers.regenerator().w(function (
|
|
2353
|
-
while (1) switch (
|
|
2530
|
+
return _rollupPluginBabelHelpers.regenerator().w(function (_context7) {
|
|
2531
|
+
while (1) switch (_context7.n) {
|
|
2354
2532
|
case 0:
|
|
2355
2533
|
if (!(components.length === 0)) {
|
|
2356
|
-
|
|
2534
|
+
_context7.n = 1;
|
|
2357
2535
|
break;
|
|
2358
2536
|
}
|
|
2359
|
-
return
|
|
2537
|
+
return _context7.a(2);
|
|
2360
2538
|
case 1:
|
|
2361
2539
|
throttleDelay = function throttleDelay(ms) {
|
|
2362
2540
|
return new Promise(function (resolve) {
|
|
@@ -2368,31 +2546,31 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2368
2546
|
i = 0;
|
|
2369
2547
|
case 2:
|
|
2370
2548
|
if (!(i < components.length)) {
|
|
2371
|
-
|
|
2549
|
+
_context7.n = 5;
|
|
2372
2550
|
break;
|
|
2373
2551
|
}
|
|
2374
2552
|
component = components[i];
|
|
2375
2553
|
componentId = component.uuid || ((_component$userData = component.userData) === null || _component$userData === void 0 ? void 0 : _component$userData.originalUuid);
|
|
2376
|
-
|
|
2554
|
+
_context7.n = 3;
|
|
2377
2555
|
return this._translateObjectOnAxes(componentId, deltaX, deltaY, deltaZ, threshold, throttleDelay, AXIS_THROTTLE, function (id, axis, delta) {
|
|
2378
2556
|
return _this0.centralPlant.translate(id, axis, delta, true);
|
|
2379
2557
|
});
|
|
2380
2558
|
case 3:
|
|
2381
2559
|
console.log("\uD83D\uDD27 Component ".concat(component.name, " translated (").concat(i + 1, "/").concat(components.length, ")"));
|
|
2382
2560
|
if (!(i < components.length - 1)) {
|
|
2383
|
-
|
|
2561
|
+
_context7.n = 4;
|
|
2384
2562
|
break;
|
|
2385
2563
|
}
|
|
2386
|
-
|
|
2564
|
+
_context7.n = 4;
|
|
2387
2565
|
return throttleDelay(OBJECT_DELAY);
|
|
2388
2566
|
case 4:
|
|
2389
2567
|
i++;
|
|
2390
|
-
|
|
2568
|
+
_context7.n = 2;
|
|
2391
2569
|
break;
|
|
2392
2570
|
case 5:
|
|
2393
|
-
return
|
|
2571
|
+
return _context7.a(2);
|
|
2394
2572
|
}
|
|
2395
|
-
},
|
|
2573
|
+
}, _callee7, this);
|
|
2396
2574
|
}));
|
|
2397
2575
|
function _translateComponents(_x14, _x15, _x16, _x17, _x18) {
|
|
2398
2576
|
return _translateComponents2.apply(this, arguments);
|
|
@@ -2407,10 +2585,10 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2407
2585
|
}, {
|
|
2408
2586
|
key: "_translateObjectOnAxes",
|
|
2409
2587
|
value: (function () {
|
|
2410
|
-
var _translateObjectOnAxes2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function
|
|
2411
|
-
var axes,
|
|
2412
|
-
return _rollupPluginBabelHelpers.regenerator().w(function (
|
|
2413
|
-
while (1) switch (
|
|
2588
|
+
var _translateObjectOnAxes2 = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee8(objectId, deltaX, deltaY, deltaZ, threshold, throttleDelay, axisThrottle, translateFn) {
|
|
2589
|
+
var axes, _i3, _axes2, _axes2$_i, axis, delta;
|
|
2590
|
+
return _rollupPluginBabelHelpers.regenerator().w(function (_context8) {
|
|
2591
|
+
while (1) switch (_context8.n) {
|
|
2414
2592
|
case 0:
|
|
2415
2593
|
axes = [{
|
|
2416
2594
|
axis: 'x',
|
|
@@ -2422,28 +2600,28 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
2422
2600
|
axis: 'z',
|
|
2423
2601
|
delta: deltaZ
|
|
2424
2602
|
}];
|
|
2425
|
-
|
|
2603
|
+
_i3 = 0, _axes2 = axes;
|
|
2426
2604
|
case 1:
|
|
2427
|
-
if (!(
|
|
2428
|
-
|
|
2605
|
+
if (!(_i3 < _axes2.length)) {
|
|
2606
|
+
_context8.n = 3;
|
|
2429
2607
|
break;
|
|
2430
2608
|
}
|
|
2431
|
-
_axes2$_i = _axes2[
|
|
2609
|
+
_axes2$_i = _axes2[_i3], axis = _axes2$_i.axis, delta = _axes2$_i.delta;
|
|
2432
2610
|
if (!(Math.abs(delta) > threshold)) {
|
|
2433
|
-
|
|
2611
|
+
_context8.n = 2;
|
|
2434
2612
|
break;
|
|
2435
2613
|
}
|
|
2436
2614
|
translateFn(objectId, axis, delta);
|
|
2437
|
-
|
|
2615
|
+
_context8.n = 2;
|
|
2438
2616
|
return throttleDelay(axisThrottle);
|
|
2439
2617
|
case 2:
|
|
2440
|
-
|
|
2441
|
-
|
|
2618
|
+
_i3++;
|
|
2619
|
+
_context8.n = 1;
|
|
2442
2620
|
break;
|
|
2443
2621
|
case 3:
|
|
2444
|
-
return
|
|
2622
|
+
return _context8.a(2);
|
|
2445
2623
|
}
|
|
2446
|
-
},
|
|
2624
|
+
}, _callee8);
|
|
2447
2625
|
}));
|
|
2448
2626
|
function _translateObjectOnAxes(_x19, _x20, _x21, _x22, _x23, _x24, _x25, _x26) {
|
|
2449
2627
|
return _translateObjectOnAxes2.apply(this, arguments);
|
|
@@ -79,7 +79,9 @@ var PathfindingManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
79
79
|
size: 0.5,
|
|
80
80
|
safetyMargin: 0,
|
|
81
81
|
minSegmentLength: 0.5,
|
|
82
|
-
timeout: 1000
|
|
82
|
+
timeout: 1000,
|
|
83
|
+
groundZ: 0,
|
|
84
|
+
minPathElevation: 0.1
|
|
83
85
|
},
|
|
84
86
|
connectorBBoxSize: 0.1 // Default size for position-based connectors (Phase 2 Refactoring)
|
|
85
87
|
};
|
|
@@ -34,7 +34,7 @@ var CentralPlant = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
34
34
|
* Initialize the CentralPlant manager
|
|
35
35
|
*
|
|
36
36
|
* @constructor
|
|
37
|
-
* @version 0.3.
|
|
37
|
+
* @version 0.3.52
|
|
38
38
|
* @updated 2025-10-22
|
|
39
39
|
*
|
|
40
40
|
* @description Creates a new CentralPlant instance and initializes internal managers and utilities.
|