@2112-lab/central-plant 0.3.28 → 0.3.30
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 +182 -77
- package/dist/cjs/src/core/centralPlant.js +3 -3
- package/dist/cjs/src/core/centralPlantInternals.js +7 -7
- package/dist/cjs/src/core/sceneViewer.js +6 -6
- package/dist/cjs/src/index.js +2 -2
- package/dist/cjs/src/managers/behaviors/IoBehaviorManager.js +672 -0
- package/dist/cjs/src/managers/controls/transformControlsManager.js +6 -2
- package/dist/cjs/src/managers/scene/componentTooltipManager.js +9 -9
- package/dist/cjs/src/managers/scene/modelManager.js +8 -8
- package/dist/esm/src/core/centralPlant.js +3 -3
- package/dist/esm/src/core/centralPlantInternals.js +7 -7
- package/dist/esm/src/core/sceneViewer.js +6 -6
- package/dist/esm/src/index.js +1 -1
- package/dist/esm/src/managers/behaviors/IoBehaviorManager.js +648 -0
- package/dist/esm/src/managers/controls/transformControlsManager.js +6 -2
- package/dist/esm/src/managers/scene/componentTooltipManager.js +9 -9
- package/dist/esm/src/managers/scene/modelManager.js +8 -8
- package/package.json +1 -1
|
@@ -469,6 +469,7 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
469
469
|
raycaster.setFromCamera(mouse, _this4.camera);
|
|
470
470
|
var allIntersects = raycaster.intersectObjects(_this4.scene.children, true);
|
|
471
471
|
var ioDeviceObject = null;
|
|
472
|
+
var hitMesh = null;
|
|
472
473
|
var _iterator = _rollupPluginBabelHelpers.createForOfIteratorHelper(allIntersects),
|
|
473
474
|
_step;
|
|
474
475
|
try {
|
|
@@ -483,7 +484,10 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
483
484
|
}
|
|
484
485
|
obj = obj.parent;
|
|
485
486
|
}
|
|
486
|
-
if (ioDeviceObject)
|
|
487
|
+
if (ioDeviceObject) {
|
|
488
|
+
hitMesh = hit.object;
|
|
489
|
+
break;
|
|
490
|
+
}
|
|
487
491
|
}
|
|
488
492
|
} catch (err) {
|
|
489
493
|
_iterator.e(err);
|
|
@@ -498,7 +502,7 @@ var TransformControlsManager = /*#__PURE__*/function () {
|
|
|
498
502
|
_this4._ioDragStartY = event.clientY;
|
|
499
503
|
_this4._ioDragMoved = false;
|
|
500
504
|
if (_this4.orbitControls) _this4.orbitControls.enabled = false;
|
|
501
|
-
_this4.callbacks.onIODeviceDrag(ioDeviceObject, 0, true);
|
|
505
|
+
_this4.callbacks.onIODeviceDrag(ioDeviceObject, 0, true, hitMesh);
|
|
502
506
|
var onMove = function onMove(e) {
|
|
503
507
|
var dx = e.clientX - _this4._ioDragStartX;
|
|
504
508
|
var dy = e.clientY - _this4._ioDragStartY;
|
|
@@ -163,7 +163,7 @@ var ComponentTooltipManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
163
163
|
var currentVal = (_ref = storedVal !== null && storedVal !== void 0 ? storedVal : binaryState.defaultValue) !== null && _ref !== void 0 ? _ref : false;
|
|
164
164
|
var newVal = !Boolean(currentVal);
|
|
165
165
|
this._stateAdapter.setState(scopedAttachmentId, dpId, newVal);
|
|
166
|
-
(_this$sceneViewer = this.sceneViewer) === null || _this$sceneViewer === void 0 || (_this$sceneViewer = _this$sceneViewer.managers) === null || _this$sceneViewer === void 0 || (_this$sceneViewer = _this$sceneViewer.
|
|
166
|
+
(_this$sceneViewer = this.sceneViewer) === null || _this$sceneViewer === void 0 || (_this$sceneViewer = _this$sceneViewer.managers) === null || _this$sceneViewer === void 0 || (_this$sceneViewer = _this$sceneViewer.ioBehaviorManager) === null || _this$sceneViewer === void 0 || _this$sceneViewer.triggerState(attachmentId, dpId, newVal, parentUuid);
|
|
167
167
|
console.log("\uD83D\uDD04 [IODevice] Toggled ".concat(scopedAttachmentId, ".").concat(dpId, ": ").concat(currentVal, " \u2192 ").concat(newVal));
|
|
168
168
|
}
|
|
169
169
|
|
|
@@ -178,7 +178,7 @@ var ComponentTooltipManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
178
178
|
*/
|
|
179
179
|
}, {
|
|
180
180
|
key: "startIODeviceDrag",
|
|
181
|
-
value: function startIODeviceDrag(ioDeviceObject) {
|
|
181
|
+
value: function startIODeviceDrag(ioDeviceObject, hitMesh) {
|
|
182
182
|
var _this$sceneViewer2,
|
|
183
183
|
_this2 = this;
|
|
184
184
|
if (!ioDeviceObject || !this._stateAdapter) return;
|
|
@@ -196,8 +196,8 @@ var ComponentTooltipManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
196
196
|
obj = obj.parent;
|
|
197
197
|
}
|
|
198
198
|
var scopedAttachmentId = this._getScopedAttachmentKey(attachmentId, parentUuid);
|
|
199
|
-
var
|
|
200
|
-
var dataPoints = ((
|
|
199
|
+
var ioBehavMgr = (_this$sceneViewer2 = this.sceneViewer) === null || _this$sceneViewer2 === void 0 || (_this$sceneViewer2 = _this$sceneViewer2.managers) === null || _this$sceneViewer2 === void 0 ? void 0 : _this$sceneViewer2.ioBehaviorManager;
|
|
200
|
+
var dataPoints = ((ioBehavMgr === null || ioBehavMgr === void 0 ? void 0 : ioBehavMgr.getAnimationDataPoints(parentUuid, attachmentId, hitMesh)) || []).concat((ud === null || ud === void 0 ? void 0 : ud.dataPoints) || [])
|
|
201
201
|
// deduplicate by id
|
|
202
202
|
.filter(function (dp, i, arr) {
|
|
203
203
|
return arr.findIndex(function (d) {
|
|
@@ -326,7 +326,7 @@ var ComponentTooltipManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
326
326
|
dp = _ref2.dp;
|
|
327
327
|
var dpId = dp.id;
|
|
328
328
|
(_this$_stateAdapter = this._stateAdapter) === null || _this$_stateAdapter === void 0 || _this$_stateAdapter.setState(scopedAttachmentId, dpId, newVal);
|
|
329
|
-
(_this$sceneViewer3 = this.sceneViewer) === null || _this$sceneViewer3 === void 0 || (_this$sceneViewer3 = _this$sceneViewer3.managers) === null || _this$sceneViewer3 === void 0 || (_this$sceneViewer3 = _this$sceneViewer3.
|
|
329
|
+
(_this$sceneViewer3 = this.sceneViewer) === null || _this$sceneViewer3 === void 0 || (_this$sceneViewer3 = _this$sceneViewer3.managers) === null || _this$sceneViewer3 === void 0 || (_this$sceneViewer3 = _this$sceneViewer3.ioBehaviorManager) === null || _this$sceneViewer3 === void 0 || _this$sceneViewer3.triggerState(attachmentId, dpId, newVal, parentUuid);
|
|
330
330
|
}
|
|
331
331
|
|
|
332
332
|
/**
|
|
@@ -451,11 +451,11 @@ var ComponentTooltipManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
451
451
|
var _this3$sceneViewer$ma, _this3$sceneViewer;
|
|
452
452
|
var attachmentId = child.userData.attachmentId || '';
|
|
453
453
|
|
|
454
|
-
// Use only data points from the animate window (
|
|
454
|
+
// Use only data points from the animate window (behaviorConfig).
|
|
455
455
|
// The static ioConfig.states[] snapshot on userData is intentionally ignored.
|
|
456
|
-
var dataPoints = (_this3$sceneViewer$ma = (_this3$sceneViewer = _this3.sceneViewer) === null || _this3$sceneViewer === void 0 || (_this3$sceneViewer = _this3$sceneViewer.managers) === null || _this3$sceneViewer === void 0 || (_this3$sceneViewer = _this3$sceneViewer.
|
|
456
|
+
var dataPoints = (_this3$sceneViewer$ma = (_this3$sceneViewer = _this3.sceneViewer) === null || _this3$sceneViewer === void 0 || (_this3$sceneViewer = _this3$sceneViewer.managers) === null || _this3$sceneViewer === void 0 || (_this3$sceneViewer = _this3$sceneViewer.ioBehaviorManager) === null || _this3$sceneViewer === void 0 ? void 0 : _this3$sceneViewer.getAnimationDataPoints(parentUuid, attachmentId)) !== null && _this3$sceneViewer$ma !== void 0 ? _this3$sceneViewer$ma : [];
|
|
457
457
|
|
|
458
|
-
// When data points come from
|
|
458
|
+
// When data points come from behaviorConfig they already carry direction:'input'.
|
|
459
459
|
// Pass null so _buildDataPointRow uses the per-dp direction instead of the
|
|
460
460
|
// device-level ioDirection (which may be 'output' and would hide controls).
|
|
461
461
|
var deviceDirection = dataPoints.length > 0 ? null : child.userData.ioDirection || 'output';
|
|
@@ -694,7 +694,7 @@ var ComponentTooltipManager = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
694
694
|
var _this5$_stateAdapter, _this5$selectedObject, _this5$sceneViewer;
|
|
695
695
|
(_this5$_stateAdapter = _this5._stateAdapter) === null || _this5$_stateAdapter === void 0 || _this5$_stateAdapter.setState(scopedAttachmentId, dpId, newVal);
|
|
696
696
|
var parentUuid = ((_this5$selectedObject = _this5.selectedObject) === null || _this5$selectedObject === void 0 ? void 0 : _this5$selectedObject.uuid) || null;
|
|
697
|
-
(_this5$sceneViewer = _this5.sceneViewer) === null || _this5$sceneViewer === void 0 || (_this5$sceneViewer = _this5$sceneViewer.managers) === null || _this5$sceneViewer === void 0 || (_this5$sceneViewer = _this5$sceneViewer.
|
|
697
|
+
(_this5$sceneViewer = _this5.sceneViewer) === null || _this5$sceneViewer === void 0 || (_this5$sceneViewer = _this5$sceneViewer.managers) === null || _this5$sceneViewer === void 0 || (_this5$sceneViewer = _this5$sceneViewer.ioBehaviorManager) === null || _this5$sceneViewer === void 0 || _this5$sceneViewer.triggerState(originalAttachmentId || scopedAttachmentId, dpId, newVal, parentUuid);
|
|
698
698
|
});
|
|
699
699
|
row.appendChild(ctrl);
|
|
700
700
|
this._stateElements.set(key, {
|
|
@@ -77,7 +77,7 @@ var ModelManager = /*#__PURE__*/function () {
|
|
|
77
77
|
key: "loadLibraryModel",
|
|
78
78
|
value: function () {
|
|
79
79
|
var _loadLibraryModel = _rollupPluginBabelHelpers.asyncToGenerator(/*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _callee(targetMesh, jsonEntry, componentData) {
|
|
80
|
-
var component, _jsonEntry$userData, _jsonEntry$userData2, _jsonEntry$userData3, originalProps, connectorChildren, gltfScene, libraryModel, _this$sceneViewer,
|
|
80
|
+
var component, _jsonEntry$userData, _jsonEntry$userData2, _jsonEntry$userData3, originalProps, connectorChildren, gltfScene, libraryModel, _this$sceneViewer, ioBehavMgr, _loop, _i, _Object$entries, warmFn, _jsonEntry$userData4, _t;
|
|
81
81
|
return _rollupPluginBabelHelpers.regenerator().w(function (_context2) {
|
|
82
82
|
while (1) switch (_context2.n) {
|
|
83
83
|
case 0:
|
|
@@ -120,22 +120,22 @@ var ModelManager = /*#__PURE__*/function () {
|
|
|
120
120
|
_context2.n = 4;
|
|
121
121
|
return ioDeviceUtils.attachIODevicesToComponent(libraryModel, componentData, modelPreloader["default"], originalProps.uuid);
|
|
122
122
|
case 4:
|
|
123
|
-
// Register
|
|
124
|
-
|
|
125
|
-
if (!
|
|
123
|
+
// Register behavior configs for each attached device
|
|
124
|
+
ioBehavMgr = (_this$sceneViewer = this.sceneViewer) === null || _this$sceneViewer === void 0 || (_this$sceneViewer = _this$sceneViewer.managers) === null || _this$sceneViewer === void 0 ? void 0 : _this$sceneViewer.ioBehaviorManager;
|
|
125
|
+
if (!ioBehavMgr) {
|
|
126
126
|
_context2.n = 8;
|
|
127
127
|
break;
|
|
128
128
|
}
|
|
129
129
|
_loop = /*#__PURE__*/_rollupPluginBabelHelpers.regenerator().m(function _loop() {
|
|
130
|
-
var _modelPreloader$compo, _deviceData$
|
|
130
|
+
var _modelPreloader$compo, _deviceData$behaviorC;
|
|
131
131
|
var _Object$entries$_i, attachmentId, attachment, deviceData, deviceRoot;
|
|
132
132
|
return _rollupPluginBabelHelpers.regenerator().w(function (_context) {
|
|
133
133
|
while (1) switch (_context.n) {
|
|
134
134
|
case 0:
|
|
135
135
|
_Object$entries$_i = _rollupPluginBabelHelpers.slicedToArray(_Object$entries[_i], 2), attachmentId = _Object$entries$_i[0], attachment = _Object$entries$_i[1];
|
|
136
136
|
deviceData = (_modelPreloader$compo = modelPreloader["default"].componentDictionary) === null || _modelPreloader$compo === void 0 ? void 0 : _modelPreloader$compo[attachment.deviceId];
|
|
137
|
-
console.log("[ModelManager] attachment \"".concat(attachmentId, "\" \u2192 deviceId \"").concat(attachment.deviceId, "\" \u2192
|
|
138
|
-
if (deviceData !== null && deviceData !== void 0 && deviceData.
|
|
137
|
+
console.log("[ModelManager] attachment \"".concat(attachmentId, "\" \u2192 deviceId \"").concat(attachment.deviceId, "\" \u2192 behaviorConfig:"), (_deviceData$behaviorC = deviceData === null || deviceData === void 0 ? void 0 : deviceData.behaviorConfig) !== null && _deviceData$behaviorC !== void 0 ? _deviceData$behaviorC : 'NONE');
|
|
138
|
+
if (deviceData !== null && deviceData !== void 0 && deviceData.behaviorConfig) {
|
|
139
139
|
_context.n = 1;
|
|
140
140
|
break;
|
|
141
141
|
}
|
|
@@ -147,7 +147,7 @@ var ModelManager = /*#__PURE__*/function () {
|
|
|
147
147
|
if (!deviceRoot && ((_obj$userData = obj.userData) === null || _obj$userData === void 0 ? void 0 : _obj$userData.attachmentId) === attachmentId) deviceRoot = obj;
|
|
148
148
|
});
|
|
149
149
|
if (deviceRoot) {
|
|
150
|
-
|
|
150
|
+
ioBehavMgr.loadBehaviors(attachmentId, deviceData.behaviorConfig, deviceRoot, originalProps.uuid);
|
|
151
151
|
}
|
|
152
152
|
case 2:
|
|
153
153
|
return _context.a(2);
|
|
@@ -31,7 +31,7 @@ var CentralPlant = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
31
31
|
* Initialize the CentralPlant manager
|
|
32
32
|
*
|
|
33
33
|
* @constructor
|
|
34
|
-
* @version 0.3.
|
|
34
|
+
* @version 0.3.30
|
|
35
35
|
* @updated 2025-10-22
|
|
36
36
|
*
|
|
37
37
|
* @description Creates a new CentralPlant instance and initializes internal managers and utilities.
|
|
@@ -1109,8 +1109,8 @@ var CentralPlant = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
1109
1109
|
}
|
|
1110
1110
|
}
|
|
1111
1111
|
|
|
1112
|
-
// 2. Apply io-
|
|
1113
|
-
(_this$sceneViewer5 = this.sceneViewer) === null || _this$sceneViewer5 === void 0 || (_this$sceneViewer5 = _this$sceneViewer5.managers) === null || _this$sceneViewer5 === void 0 || (_this$sceneViewer5 = _this$sceneViewer5.
|
|
1112
|
+
// 2. Apply io-behavior changes
|
|
1113
|
+
(_this$sceneViewer5 = this.sceneViewer) === null || _this$sceneViewer5 === void 0 || (_this$sceneViewer5 = _this$sceneViewer5.managers) === null || _this$sceneViewer5 === void 0 || (_this$sceneViewer5 = _this$sceneViewer5.ioBehaviorManager) === null || _this$sceneViewer5 === void 0 || _this$sceneViewer5.triggerState(attachmentId, stateId, value, parentUuid);
|
|
1114
1114
|
|
|
1115
1115
|
// 3. Emit event for host apps that don't use the state adapter (e.g. cp3d-viewer)
|
|
1116
1116
|
(_this$sceneViewer6 = this.sceneViewer) === null || _this$sceneViewer6 === void 0 || _this$sceneViewer6.emit('io-device-state-changed', {
|
|
@@ -22,7 +22,7 @@ import { ComponentDragManager } from '../managers/controls/componentDragManager.
|
|
|
22
22
|
import { SceneTooltipsManager } from '../managers/scene/sceneTooltipsManager.js';
|
|
23
23
|
import { ComponentTooltipManager } from '../managers/scene/componentTooltipManager.js';
|
|
24
24
|
import { Viewport2DManager } from '../managers/scene/viewport2DManager.js';
|
|
25
|
-
import {
|
|
25
|
+
import { IoBehaviorManager } from '../managers/behaviors/IoBehaviorManager.js';
|
|
26
26
|
import { IoOutlineManager } from '../managers/behaviors/IoOutlineManager.js';
|
|
27
27
|
import { generateUuidFromName, getHardcodedUuid, findObjectByHardcodedUuid, generateUniqueComponentId } from '../utils/nameUtils.js';
|
|
28
28
|
import { attachIODevicesToComponent } from '../utils/ioDeviceUtils.js';
|
|
@@ -149,7 +149,7 @@ var CentralPlantInternals = /*#__PURE__*/function () {
|
|
|
149
149
|
this.centralPlant.managers.cameraControlsManager = new CameraControlsManager(this.centralPlant.sceneViewer);
|
|
150
150
|
this.centralPlant.managers.componentDragManager = new ComponentDragManager(this.centralPlant.sceneViewer);
|
|
151
151
|
this.centralPlant.managers.viewport2DManager = new Viewport2DManager(this.centralPlant.sceneViewer);
|
|
152
|
-
this.centralPlant.managers.
|
|
152
|
+
this.centralPlant.managers.ioBehaviorManager = new IoBehaviorManager(this.centralPlant.sceneViewer);
|
|
153
153
|
this.centralPlant.managers.ioOutlineManager = new IoOutlineManager(this.centralPlant.sceneViewer);
|
|
154
154
|
|
|
155
155
|
// All managers are now stored in the managers collection and will be attached via attachToComponent()
|
|
@@ -1128,23 +1128,23 @@ var CentralPlantInternals = /*#__PURE__*/function () {
|
|
|
1128
1128
|
var _this$centralPlant$sc8;
|
|
1129
1129
|
attachIODevicesToComponent(componentModel, componentData, modelPreloader, componentId);
|
|
1130
1130
|
|
|
1131
|
-
// Register
|
|
1132
|
-
var
|
|
1133
|
-
if (
|
|
1131
|
+
// Register behavior configs so IoBehaviorManager can respond to state changes
|
|
1132
|
+
var ioBehavMgr = (_this$centralPlant$sc8 = this.centralPlant.sceneViewer) === null || _this$centralPlant$sc8 === void 0 || (_this$centralPlant$sc8 = _this$centralPlant$sc8.managers) === null || _this$centralPlant$sc8 === void 0 ? void 0 : _this$centralPlant$sc8.ioBehaviorManager;
|
|
1133
|
+
if (ioBehavMgr) {
|
|
1134
1134
|
var _loop = function _loop() {
|
|
1135
1135
|
var _modelPreloader$compo;
|
|
1136
1136
|
var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),
|
|
1137
1137
|
attachmentId = _Object$entries$_i[0],
|
|
1138
1138
|
attachment = _Object$entries$_i[1];
|
|
1139
1139
|
var deviceData = (_modelPreloader$compo = modelPreloader.componentDictionary) === null || _modelPreloader$compo === void 0 ? void 0 : _modelPreloader$compo[attachment.deviceId];
|
|
1140
|
-
if (!(deviceData !== null && deviceData !== void 0 && deviceData.
|
|
1140
|
+
if (!(deviceData !== null && deviceData !== void 0 && deviceData.behaviorConfig)) return 1; // continue
|
|
1141
1141
|
var deviceRoot = null;
|
|
1142
1142
|
componentModel.traverse(function (obj) {
|
|
1143
1143
|
var _obj$userData2;
|
|
1144
1144
|
if (!deviceRoot && ((_obj$userData2 = obj.userData) === null || _obj$userData2 === void 0 ? void 0 : _obj$userData2.attachmentId) === attachmentId) deviceRoot = obj;
|
|
1145
1145
|
});
|
|
1146
1146
|
if (deviceRoot) {
|
|
1147
|
-
|
|
1147
|
+
ioBehavMgr.loadBehaviors(attachmentId, deviceData.behaviorConfig, deviceRoot, componentId);
|
|
1148
1148
|
}
|
|
1149
1149
|
};
|
|
1150
1150
|
for (var _i = 0, _Object$entries = Object.entries(componentData.attachedDevices); _i < _Object$entries.length; _i++) {
|
|
@@ -98,7 +98,7 @@ var sceneViewer = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
98
98
|
this.centralPlant.attachToComponent();
|
|
99
99
|
|
|
100
100
|
// Sync our managers tracking object after attachment
|
|
101
|
-
managerKeys = ['threeJSResourceManager', 'performanceMonitorManager', 'settingsManager', 'sceneExportManager', 'componentManager', 'sceneInitializationManager', 'environmentManager', 'keyboardControlsManager', 'pathfindingManager', 'pathFlowManager', '
|
|
101
|
+
managerKeys = ['threeJSResourceManager', 'performanceMonitorManager', 'settingsManager', 'sceneExportManager', 'componentManager', 'sceneInitializationManager', 'environmentManager', 'keyboardControlsManager', 'pathfindingManager', 'pathFlowManager', 'ioBehaviorManager', 'ioOutlineManager', 'sceneOperationsManager', 'animationManager', 'cameraControlsManager', 'componentDragManager', 'tooltipsManager', 'componentTooltipManager']; // Populate our managers tracking object
|
|
102
102
|
managerKeys.forEach(function (key) {
|
|
103
103
|
if (_this2[key]) {
|
|
104
104
|
_this2.managers[key] = _this2[key];
|
|
@@ -428,12 +428,12 @@ var sceneViewer = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
428
428
|
_this4.componentTooltipManager.toggleIODeviceBinaryState(ioDeviceObject);
|
|
429
429
|
}
|
|
430
430
|
},
|
|
431
|
-
onIODeviceDrag: function onIODeviceDrag(ioDeviceObject, signedDelta, isStart) {
|
|
431
|
+
onIODeviceDrag: function onIODeviceDrag(ioDeviceObject, signedDelta, isStart, hitMesh) {
|
|
432
432
|
if (isStart) {
|
|
433
|
-
var _ioDeviceObject$userD, _this4$managers$
|
|
433
|
+
var _ioDeviceObject$userD, _this4$managers$ioBeh, _this4$managers, _this4$managers2;
|
|
434
434
|
// Resolve parentUuid by walking up to the host component.
|
|
435
435
|
// Use userData.originalUuid (the custom componentId) because that
|
|
436
|
-
// is what
|
|
436
|
+
// is what IoBehaviorManager uses as the map key — NOT obj.uuid.
|
|
437
437
|
var parentUuid = null;
|
|
438
438
|
var obj = ioDeviceObject.parent;
|
|
439
439
|
while (obj) {
|
|
@@ -449,13 +449,13 @@ var sceneViewer = /*#__PURE__*/function (_BaseDisposable) {
|
|
|
449
449
|
// silhouette is isolated and the outline ring is visible around
|
|
450
450
|
// them specifically (not swallowed by the larger device body).
|
|
451
451
|
// Fall back to the whole device group when none are registered.
|
|
452
|
-
var animatedMeshes = attachmentId && parentUuid ? (_this4$managers$
|
|
452
|
+
var animatedMeshes = attachmentId && parentUuid ? (_this4$managers$ioBeh = (_this4$managers = _this4.managers) === null || _this4$managers === void 0 || (_this4$managers = _this4$managers.ioBehaviorManager) === null || _this4$managers === void 0 ? void 0 : _this4$managers.getAnimatedMeshes(parentUuid, attachmentId)) !== null && _this4$managers$ioBeh !== void 0 ? _this4$managers$ioBeh : [] : [];
|
|
453
453
|
var targets = animatedMeshes.length > 0 ? animatedMeshes : [ioDeviceObject];
|
|
454
454
|
(_this4$managers2 = _this4.managers) === null || _this4$managers2 === void 0 || (_this4$managers2 = _this4$managers2.ioOutlineManager) === null || _this4$managers2 === void 0 || _this4$managers2.setTargets(targets);
|
|
455
455
|
}
|
|
456
456
|
if (!_this4.componentTooltipManager) return;
|
|
457
457
|
if (isStart) {
|
|
458
|
-
_this4.componentTooltipManager.startIODeviceDrag(ioDeviceObject);
|
|
458
|
+
_this4.componentTooltipManager.startIODeviceDrag(ioDeviceObject, hitMesh);
|
|
459
459
|
} else {
|
|
460
460
|
_this4.componentTooltipManager.updateIODeviceDrag(signedDelta);
|
|
461
461
|
}
|
package/dist/esm/src/index.js
CHANGED
|
@@ -9,7 +9,7 @@ export { SceneExportManager } from './managers/scene/sceneExportManager.js';
|
|
|
9
9
|
export { SceneTooltipsManager } from './managers/scene/sceneTooltipsManager.js';
|
|
10
10
|
export { ComponentTooltipManager } from './managers/scene/componentTooltipManager.js';
|
|
11
11
|
export { SceneHierarchyManager } from './managers/scene/sceneHierarchyManager.js';
|
|
12
|
-
export {
|
|
12
|
+
export { IoBehaviorManager } from './managers/behaviors/IoBehaviorManager.js';
|
|
13
13
|
export { ComponentManager } from './managers/components/componentManager.js';
|
|
14
14
|
export { AnimationManager } from './managers/scene/animationManager.js';
|
|
15
15
|
export { PathfindingManager } from './managers/pathfinding/pathfindingManager.js';
|