@2112-lab/central-plant 0.1.39 → 0.1.41
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 +7991 -7054
- package/dist/cjs/src/core/centralPlant.js +48 -3
- package/dist/cjs/src/core/centralPlantInternals.js +75 -566
- package/dist/cjs/src/core/sceneViewer.js +38 -13
- package/dist/cjs/src/index.js +6 -4
- package/dist/cjs/src/managers/components/pathfindingManager.js +75 -60
- package/dist/cjs/src/managers/components/transformOperationsManager.js +929 -0
- package/dist/cjs/src/managers/controls/keyboardControlsManager.js +57 -1
- package/dist/cjs/src/managers/controls/transformControls.js +11 -3
- package/dist/cjs/src/managers/controls/transformControlsManager.js +563 -263
- package/dist/cjs/src/managers/pathfinding/ConnectorManager.js +385 -0
- package/dist/cjs/src/managers/pathfinding/PathIntersectionDetector.js +387 -0
- package/dist/cjs/src/managers/pathfinding/PathRenderingManager.js +401 -0
- package/dist/cjs/src/managers/pathfinding/pathfindingManager.js +378 -0
- package/dist/cjs/src/managers/pathfinding/sceneDataManager.js +256 -0
- package/dist/cjs/src/managers/scene/animationManager.js +145 -0
- package/dist/cjs/src/managers/scene/sceneExportManager.js +14 -13
- package/dist/cjs/src/managers/scene/sceneOperationsManager.js +516 -21
- package/dist/cjs/src/managers/scene/sceneTooltipsManager.js +1 -8
- package/dist/cjs/src/managers/system/operationHistoryManager.js +414 -0
- package/dist/cjs/src/managers/system/settingsManager.js +2 -1
- package/dist/cjs/src/utils/objectTypes.js +5 -7
- package/dist/esm/src/core/centralPlant.js +48 -3
- package/dist/esm/src/core/centralPlantInternals.js +76 -567
- package/dist/esm/src/core/sceneViewer.js +38 -13
- package/dist/esm/src/index.js +4 -3
- package/dist/esm/src/managers/components/pathfindingManager.js +75 -60
- package/dist/esm/src/managers/components/transformOperationsManager.js +904 -0
- package/dist/esm/src/managers/controls/keyboardControlsManager.js +57 -1
- package/dist/esm/src/managers/controls/transformControls.js +11 -3
- package/dist/esm/src/managers/controls/transformControlsManager.js +564 -264
- package/dist/esm/src/managers/pathfinding/ConnectorManager.js +361 -0
- package/dist/esm/src/managers/pathfinding/PathIntersectionDetector.js +363 -0
- package/dist/esm/src/managers/pathfinding/PathRenderingManager.js +377 -0
- package/dist/esm/src/managers/pathfinding/pathfindingManager.js +374 -0
- package/dist/esm/src/managers/pathfinding/sceneDataManager.js +232 -0
- package/dist/esm/src/managers/scene/animationManager.js +141 -0
- package/dist/esm/src/managers/scene/sceneExportManager.js +14 -13
- package/dist/esm/src/managers/scene/sceneOperationsManager.js +516 -21
- package/dist/esm/src/managers/scene/sceneTooltipsManager.js +1 -8
- package/dist/esm/src/managers/system/operationHistoryManager.js +409 -0
- package/dist/esm/src/managers/system/settingsManager.js +2 -1
- package/dist/esm/src/utils/objectTypes.js +5 -7
- package/dist/index.d.ts +2 -2
- package/package.json +1 -1
|
@@ -18,12 +18,21 @@ var KeyboardControlsManager = /*#__PURE__*/function () {
|
|
|
18
18
|
return _rollupPluginBabelHelpers.createClass(KeyboardControlsManager, [{
|
|
19
19
|
key: "setupKeyboardControls",
|
|
20
20
|
value: function setupKeyboardControls() {
|
|
21
|
+
var _this = this;
|
|
21
22
|
this.handleKeyDown = function (event) {
|
|
22
23
|
// Sample Ctrl+Z example
|
|
23
24
|
if (event.ctrlKey && (event.key.toLowerCase() === 'z' || event.code === 'KeyZ')) {
|
|
24
25
|
// method call here
|
|
25
26
|
return;
|
|
26
27
|
}
|
|
28
|
+
|
|
29
|
+
// Shift+D to split selected segment
|
|
30
|
+
if (event.shiftKey && (event.key.toLowerCase() === 'd' || event.code === 'KeyD')) {
|
|
31
|
+
_this.handleSegmentSplit();
|
|
32
|
+
event.preventDefault();
|
|
33
|
+
event.stopPropagation();
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
27
36
|
switch (event.key.toLowerCase()) {
|
|
28
37
|
}
|
|
29
38
|
};
|
|
@@ -34,7 +43,54 @@ var KeyboardControlsManager = /*#__PURE__*/function () {
|
|
|
34
43
|
|
|
35
44
|
// Override transform controls keyboard handling
|
|
36
45
|
this.overrideTransformControlsKeyboard();
|
|
37
|
-
console.log('Keyboard controls initialized with Ctrl+Z undo override');
|
|
46
|
+
console.log('Keyboard controls initialized with Ctrl+Z undo override and Shift+D segment split');
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Handle segment split operation (Shift+D)
|
|
51
|
+
* Splits the currently selected segment in half if it's a pipe segment
|
|
52
|
+
*/
|
|
53
|
+
}, {
|
|
54
|
+
key: "handleSegmentSplit",
|
|
55
|
+
value: function handleSegmentSplit() {
|
|
56
|
+
var sceneViewer = this.sceneViewer;
|
|
57
|
+
|
|
58
|
+
// Check if transform controls are active with a selected object
|
|
59
|
+
if (!sceneViewer.transformManager || !sceneViewer.transformManager.selectedObjects || sceneViewer.transformManager.selectedObjects.length === 0) {
|
|
60
|
+
console.log('ℹ️ No object selected for segment split');
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
var selectedObject = sceneViewer.transformManager.selectedObjects[0];
|
|
64
|
+
|
|
65
|
+
// Verify it's a segment
|
|
66
|
+
if (!selectedObject.userData || selectedObject.userData.objectType !== 'segment') {
|
|
67
|
+
console.log('ℹ️ Selected object is not a segment, cannot split');
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
console.log('✂️ Shift+D pressed - splitting segment:', selectedObject.uuid);
|
|
71
|
+
|
|
72
|
+
// Access CentralPlant through sceneViewer
|
|
73
|
+
var centralPlant = sceneViewer.centralPlant;
|
|
74
|
+
if (!centralPlant || typeof centralPlant.splitSegment !== 'function') {
|
|
75
|
+
console.error('❌ CentralPlant or splitSegment method not available');
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Call the public API to split the segment
|
|
80
|
+
var result = centralPlant.splitSegment(selectedObject.uuid);
|
|
81
|
+
if (result) {
|
|
82
|
+
console.log('✅ Segment split successful:', result);
|
|
83
|
+
|
|
84
|
+
// Deselect the original segment (now removed) and optionally select one of the new segments
|
|
85
|
+
sceneViewer.transformManager.deselectObject();
|
|
86
|
+
|
|
87
|
+
// Optionally select the first new segment
|
|
88
|
+
if (result.segment1) {
|
|
89
|
+
sceneViewer.transformManager.selectObject(result.segment1);
|
|
90
|
+
}
|
|
91
|
+
} else {
|
|
92
|
+
console.error('❌ Segment split failed');
|
|
93
|
+
}
|
|
38
94
|
}
|
|
39
95
|
|
|
40
96
|
/**
|
|
@@ -177,6 +177,14 @@ var transformControls = /*#__PURE__*/function (_THREE$Object3D) {
|
|
|
177
177
|
}, {
|
|
178
178
|
key: "_getBoundingBoxCenter",
|
|
179
179
|
value: function _getBoundingBoxCenter(object) {
|
|
180
|
+
var _object$userData;
|
|
181
|
+
// Special case: if this is a multi-selection group, use its position directly
|
|
182
|
+
// (it's an empty group positioned at the centroid, so no need to calculate bounding box)
|
|
183
|
+
if ((_object$userData = object.userData) !== null && _object$userData !== void 0 && _object$userData.isMultiSelectionGroup) {
|
|
184
|
+
var worldPos = new THREE__namespace.Vector3();
|
|
185
|
+
object.getWorldPosition(worldPos);
|
|
186
|
+
return worldPos;
|
|
187
|
+
}
|
|
180
188
|
var boundingBox = new THREE__namespace.Box3();
|
|
181
189
|
|
|
182
190
|
// Set from object, which calculates world bounding box
|
|
@@ -185,9 +193,9 @@ var transformControls = /*#__PURE__*/function (_THREE$Object3D) {
|
|
|
185
193
|
// If bounding box is empty or invalid, fall back to object position
|
|
186
194
|
if (boundingBox.isEmpty()) {
|
|
187
195
|
console.warn('transformControls: Bounding box is empty, using object position');
|
|
188
|
-
var
|
|
189
|
-
object.getWorldPosition(
|
|
190
|
-
return
|
|
196
|
+
var _worldPos = new THREE__namespace.Vector3();
|
|
197
|
+
object.getWorldPosition(_worldPos);
|
|
198
|
+
return _worldPos;
|
|
191
199
|
}
|
|
192
200
|
var center = new THREE__namespace.Vector3();
|
|
193
201
|
boundingBox.getCenter(center);
|