kitchen-simulator 4.0.1-react-18 → 4.0.1
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/README.md +3 -0
- package/es/AppContext.js +1 -1
- package/es/LiteKitchenConfigurator.js +156 -108
- package/es/LiteRenderer.js +159 -130
- package/es/actions/export.js +25 -12
- package/es/assets/gltf/door_sliding.bin +0 -0
- package/es/assets/img/png/helper/video_preview_start.png +0 -0
- package/es/assets/img/svg/bottombar/elevation.svg +12 -5
- package/es/catalog/catalog.js +21 -5
- package/es/catalog/holes/window-clear/planner-element.js +2 -2
- package/es/catalog/properties/export.js +21 -0
- package/es/catalog/properties/property-checkbox.js +68 -0
- package/es/catalog/properties/property-color.js +39 -0
- package/es/catalog/properties/property-enum.js +50 -0
- package/es/catalog/properties/property-hidden.js +19 -0
- package/es/catalog/properties/property-lenght-measure.js +100 -0
- package/es/catalog/properties/property-length-measure.js +84 -0
- package/es/catalog/properties/property-length-measure_hole.js +100 -0
- package/es/catalog/properties/property-number.js +48 -0
- package/es/catalog/properties/property-read-only.js +26 -0
- package/es/catalog/properties/property-string.js +48 -0
- package/es/catalog/properties/property-toggle.js +39 -0
- package/es/catalog/properties/shared-property-style.js +14 -0
- package/es/catalog/utils/exporter.js +1 -0
- package/es/catalog/utils/item-loader.js +17 -12
- package/es/class/hole.js +0 -2
- package/es/class/item.js +95 -69
- package/es/class/line.js +4 -8
- package/es/class/project.js +91 -80
- package/es/components/content.js +5 -2
- package/es/components/export.js +4 -6
- package/es/components/style/button.js +106 -0
- package/es/components/style/cancel-button.js +21 -0
- package/es/components/style/content-container.js +30 -0
- package/es/components/style/content-title.js +25 -0
- package/es/components/style/delete-button.js +24 -0
- package/es/components/style/export.js +28 -2
- package/es/components/style/form-block.js +20 -0
- package/es/components/style/form-color-input.js +26 -0
- package/es/components/style/form-label.js +22 -0
- package/es/components/style/form-number-input.js +11 -22
- package/es/components/style/form-number-input_2.js +200 -0
- package/es/components/style/form-select.js +19 -0
- package/es/components/style/form-slider.js +60 -0
- package/es/components/style/form-submit-button.js +25 -0
- package/es/components/style/form-text-input.js +69 -0
- package/es/components/viewer2d/group.js +5 -4
- package/es/components/viewer2d/item.js +339 -299
- package/es/components/viewer2d/layer.js +1 -1
- package/es/components/viewer2d/line.js +17 -47
- package/es/components/viewer2d/ruler.js +5 -3
- package/es/components/viewer2d/rulerDist.js +8 -7
- package/es/components/viewer2d/rulerX.js +3 -0
- package/es/components/viewer2d/rulerY.js +3 -0
- package/es/components/viewer2d/scene.js +4 -1
- package/es/components/viewer2d/state.js +1 -1
- package/es/components/viewer2d/utils.js +2 -2
- package/es/components/viewer2d/viewer2d.js +51 -84
- package/es/components/viewer3d/scene-creator.js +51 -15
- package/es/components/viewer3d/viewer3d-first-person.js +8 -0
- package/es/components/viewer3d/viewer3d.js +80 -88
- package/es/constants.js +6 -2
- package/es/devLiteRenderer.js +491 -150
- package/es/index.js +567 -25
- package/es/models.js +2 -1
- package/es/plugins/SVGLoader.js +1414 -0
- package/es/plugins/console-debugger.js +0 -2
- package/es/styles/export.js +5 -0
- package/es/styles/tabs.css +40 -0
- package/es/utils/geometry.js +52 -96
- package/es/utils/helper.js +38 -1
- package/es/utils/isolate-event-handler.js +781 -577
- package/es/utils/molding.js +457 -11
- package/lib/AppContext.js +1 -1
- package/lib/LiteKitchenConfigurator.js +155 -108
- package/lib/LiteRenderer.js +158 -130
- package/lib/actions/export.js +35 -39
- package/lib/assets/gltf/door_sliding.bin +0 -0
- package/lib/assets/img/png/helper/video_preview_start.png +0 -0
- package/lib/assets/img/svg/bottombar/elevation.svg +12 -5
- package/lib/catalog/catalog.js +20 -4
- package/lib/catalog/holes/window-clear/planner-element.js +2 -2
- package/lib/catalog/properties/export.js +81 -0
- package/lib/catalog/properties/property-checkbox.js +76 -0
- package/lib/catalog/properties/property-color.js +47 -0
- package/lib/catalog/properties/property-enum.js +58 -0
- package/lib/catalog/properties/property-hidden.js +27 -0
- package/lib/catalog/properties/property-lenght-measure.js +108 -0
- package/lib/catalog/properties/property-length-measure.js +92 -0
- package/lib/catalog/properties/property-length-measure_hole.js +108 -0
- package/lib/catalog/properties/property-number.js +56 -0
- package/lib/catalog/properties/property-read-only.js +34 -0
- package/lib/catalog/properties/property-string.js +56 -0
- package/lib/catalog/properties/property-toggle.js +47 -0
- package/lib/catalog/properties/shared-property-style.js +21 -0
- package/lib/catalog/utils/exporter.js +1 -0
- package/lib/catalog/utils/item-loader.js +17 -12
- package/lib/class/hole.js +0 -2
- package/lib/class/item.js +93 -67
- package/lib/class/line.js +3 -7
- package/lib/class/project.js +91 -80
- package/lib/components/content.js +5 -2
- package/lib/components/export.js +6 -26
- package/lib/components/style/button.js +115 -0
- package/lib/components/style/cancel-button.js +29 -0
- package/lib/components/style/content-container.js +38 -0
- package/lib/components/style/content-title.js +35 -0
- package/lib/components/style/delete-button.js +34 -0
- package/lib/components/style/export.js +105 -1
- package/lib/components/style/form-block.js +28 -0
- package/lib/components/style/form-color-input.js +34 -0
- package/lib/components/style/form-label.js +30 -0
- package/lib/components/style/form-number-input.js +11 -22
- package/lib/components/style/form-number-input_2.js +209 -0
- package/lib/components/style/form-select.js +29 -0
- package/lib/components/style/form-slider.js +68 -0
- package/lib/components/style/form-submit-button.js +35 -0
- package/lib/components/style/form-text-input.js +78 -0
- package/lib/components/viewer2d/group.js +5 -4
- package/lib/components/viewer2d/item.js +337 -297
- package/lib/components/viewer2d/layer.js +1 -1
- package/lib/components/viewer2d/line.js +17 -47
- package/lib/components/viewer2d/ruler.js +4 -2
- package/lib/components/viewer2d/rulerDist.js +8 -7
- package/lib/components/viewer2d/rulerX.js +3 -0
- package/lib/components/viewer2d/rulerY.js +3 -0
- package/lib/components/viewer2d/scene.js +4 -1
- package/lib/components/viewer2d/state.js +1 -1
- package/lib/components/viewer2d/utils.js +2 -2
- package/lib/components/viewer2d/viewer2d.js +49 -81
- package/lib/components/viewer3d/scene-creator.js +49 -13
- package/lib/components/viewer3d/viewer3d-first-person.js +8 -0
- package/lib/components/viewer3d/viewer3d.js +77 -84
- package/lib/constants.js +11 -7
- package/lib/devLiteRenderer.js +489 -148
- package/lib/index.js +567 -25
- package/lib/models.js +2 -1
- package/lib/plugins/SVGLoader.js +1419 -0
- package/lib/plugins/console-debugger.js +0 -2
- package/lib/styles/export.js +13 -0
- package/lib/styles/tabs.css +40 -0
- package/lib/utils/geometry.js +52 -96
- package/lib/utils/helper.js +40 -1
- package/lib/utils/isolate-event-handler.js +781 -576
- package/lib/utils/molding.js +458 -9
- package/package.json +21 -16
- package/es/mocks/appliancePayload.json +0 -27
- package/es/mocks/cabinetPayload.json +0 -1914
- package/es/mocks/cabinetPayload2.json +0 -76
- package/es/mocks/dataBundle2.json +0 -4
- package/es/mocks/distancePayload.json +0 -6
- package/es/mocks/doorStylePayload2.json +0 -84
- package/es/mocks/furnishingPayload.json +0 -23
- package/es/mocks/itemCDSPayload.json +0 -27
- package/es/mocks/lightingPayload.json +0 -23
- package/es/mocks/mockProps.json +0 -43
- package/es/mocks/mockProps2.json +0 -9
- package/es/mocks/moldingPayload.json +0 -19
- package/es/mocks/projectItemsCatalog.json +0 -133
- package/es/mocks/rectangleShape.json +0 -238
- package/es/mocks/replaceCabinetPayload.json +0 -81
- package/es/mocks/roomShapePayload.json +0 -5
- package/es/useAppContext.js +0 -8
- package/lib/mocks/appliancePayload.json +0 -27
- package/lib/mocks/cabinetPayload.json +0 -1914
- package/lib/mocks/cabinetPayload2.json +0 -76
- package/lib/mocks/dataBundle2.json +0 -4
- package/lib/mocks/distancePayload.json +0 -6
- package/lib/mocks/doorStylePayload2.json +0 -84
- package/lib/mocks/furnishingPayload.json +0 -23
- package/lib/mocks/itemCDSPayload.json +0 -27
- package/lib/mocks/lightingPayload.json +0 -23
- package/lib/mocks/mockProps.json +0 -43
- package/lib/mocks/mockProps2.json +0 -9
- package/lib/mocks/moldingPayload.json +0 -19
- package/lib/mocks/projectItemsCatalog.json +0 -133
- package/lib/mocks/rectangleShape.json +0 -238
- package/lib/mocks/replaceCabinetPayload.json +0 -81
- package/lib/mocks/roomShapePayload.json +0 -5
- package/lib/useAppContext.js +0 -16
|
@@ -27,8 +27,6 @@ export default function consoleDebugger() {
|
|
|
27
27
|
});
|
|
28
28
|
console.groupCollapsed('KitchenConfigurator');
|
|
29
29
|
console.info('KitchenConfigurator is ready');
|
|
30
|
-
console.info('console.log(KitchenConfigurator)');
|
|
31
|
-
console.log(window.KitchenConfigurator);
|
|
32
30
|
console.groupEnd();
|
|
33
31
|
};
|
|
34
32
|
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
.react-tabs__tab-list {
|
|
2
|
+
border-bottom: 1px solid #aaa;
|
|
3
|
+
margin: 0 0 10px;
|
|
4
|
+
padding: 0;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
.react-tabs__tab {
|
|
8
|
+
display: inline-block;
|
|
9
|
+
border: 1px solid transparent;
|
|
10
|
+
border-bottom: none;
|
|
11
|
+
bottom: -1px;
|
|
12
|
+
position: relative;
|
|
13
|
+
list-style: none;
|
|
14
|
+
padding: 6px 12px;
|
|
15
|
+
cursor: pointer;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.react-tabs__tab--selected,
|
|
19
|
+
.react-tabs__tab:focus {
|
|
20
|
+
border-color: #aaa;
|
|
21
|
+
color: #1ca6fc;
|
|
22
|
+
outline: none;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.react-tabs__tab-panel {
|
|
26
|
+
display: none;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.react-tabs__tab-panel--selected {
|
|
30
|
+
display: block;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
@keyframes spin {
|
|
34
|
+
from {
|
|
35
|
+
transform: rotate(0deg);
|
|
36
|
+
}
|
|
37
|
+
to {
|
|
38
|
+
transform: rotate(360deg);
|
|
39
|
+
}
|
|
40
|
+
}
|
package/es/utils/geometry.js
CHANGED
|
@@ -1873,7 +1873,7 @@ export function getAllHoleRect(scene, val) {
|
|
|
1873
1873
|
layer.lines.forEach(function (line) {
|
|
1874
1874
|
line.holes.forEach(function (holeID) {
|
|
1875
1875
|
var hole = layer.holes.get(holeID);
|
|
1876
|
-
holes.push(hole);
|
|
1876
|
+
if (hole) holes.push(hole);
|
|
1877
1877
|
});
|
|
1878
1878
|
});
|
|
1879
1879
|
var i = 0;
|
|
@@ -2105,7 +2105,7 @@ export function relationshipOfTwoOverlappedLines2(srcLine, destLine) {
|
|
|
2105
2105
|
lineSX = _sort4[0],
|
|
2106
2106
|
lineDX = _sort4[1];
|
|
2107
2107
|
var isReversedSrcLineIdx = false;
|
|
2108
|
-
if (lineSX[0].x === line1[0].x && lineSX[0].y === line1[0].y) isReversedSrcLineIdx = true;
|
|
2108
|
+
if (lineSX[0].x === line0[0].x && lineSX[0].y === line0[0].y) isReversedSrcLineIdx = false;else if (lineSX[0].x === line1[0].x && lineSX[0].y === line1[0].y) isReversedSrcLineIdx = true;
|
|
2109
2109
|
var compare0 = comparator(lineSX[0], lineDX[0]);
|
|
2110
2110
|
var compare1 = comparator(lineSX[1], lineDX[0]);
|
|
2111
2111
|
var compare2 = comparator(lineSX[1], lineDX[1]);
|
|
@@ -2459,31 +2459,13 @@ function getCalcRectFromItem2(itemInfo) {
|
|
|
2459
2459
|
var m3y = y + h * Math.cos(rotRad);
|
|
2460
2460
|
var m1x = x + h * Math.sin(rotRad);
|
|
2461
2461
|
var m1y = y - h * Math.cos(rotRad);
|
|
2462
|
-
var x0 = mx + h * Math.sin(rotRad);
|
|
2463
|
-
var y0 = my - h * Math.cos(rotRad);
|
|
2464
|
-
var x3 = mx * 2 - x0;
|
|
2465
|
-
var y3 = my * 2 - y0;
|
|
2466
|
-
var x1 = x * 2 - x3;
|
|
2467
|
-
var y1 = y * 2 - y3;
|
|
2468
|
-
var x2 = x * 2 - x0;
|
|
2469
|
-
var y2 = y * 2 - y0;
|
|
2470
2462
|
return {
|
|
2471
2463
|
rectCenterPoint: [[point(mx, my), 180], [point(m1x, m1y), -90], [point(m2x, m2y), 0], [point(m3x, m3y), 90]]
|
|
2472
2464
|
};
|
|
2473
2465
|
}
|
|
2474
|
-
function getAllItems2(
|
|
2466
|
+
function getAllItems2(curItem, layer) {
|
|
2475
2467
|
var rectarray = [];
|
|
2476
|
-
var
|
|
2477
|
-
var selectedItem;
|
|
2478
|
-
if (layer.selected.items.size > 0) {
|
|
2479
|
-
selectedItem = layer.getIn(['items', layer.selected.items.get(0)]);
|
|
2480
|
-
var catid = selectedItem.type;
|
|
2481
|
-
var cat = findCatalogElement(catalog, catid);
|
|
2482
|
-
currentItem = {
|
|
2483
|
-
selectedItem: selectedItem,
|
|
2484
|
-
cat: cat
|
|
2485
|
-
};
|
|
2486
|
-
}
|
|
2468
|
+
var tempHeight = curItem.get('properties').get('depth');
|
|
2487
2469
|
layer.items.forEach(function (item) {
|
|
2488
2470
|
var val = {
|
|
2489
2471
|
pos: {
|
|
@@ -2492,27 +2474,14 @@ function getAllItems2(layer, catalog) {
|
|
|
2492
2474
|
},
|
|
2493
2475
|
rotRad: item.rotation / 180 * Math.PI
|
|
2494
2476
|
};
|
|
2495
|
-
var catid = item.type;
|
|
2496
|
-
var cat = findCatalogElement(catalog, catid);
|
|
2497
2477
|
var width = convert(item.properties.getIn(['width', '_length'])).from('in').to('cm');
|
|
2498
2478
|
var height = convert(item.properties.getIn(['depth', '_length'])).from('in').to('cm');
|
|
2499
|
-
// let width = cat.info.sizeinfo.width;
|
|
2500
|
-
// let height = cat.info.sizeinfo.depth;
|
|
2501
2479
|
val.size = {
|
|
2502
2480
|
width: width,
|
|
2503
2481
|
height: height
|
|
2504
2482
|
};
|
|
2505
|
-
|
|
2506
|
-
item: item,
|
|
2507
|
-
cat: cat
|
|
2508
|
-
};
|
|
2509
|
-
|
|
2510
|
-
// if (!GeometryUtils.needSnap(currentItem, otherItem)) {
|
|
2511
|
-
// return;
|
|
2512
|
-
// }
|
|
2513
|
-
|
|
2514
|
-
if (!item.selected) {
|
|
2515
|
-
var detectObjectsAtSameAltitudeFlag = layoutpos === 'Base' ? item.properties.getIn(['altitude', '_length']) <= altitude + tempHeight.get('_length') : item.properties.getIn(['altitude', '_length']) + item.properties.getIn(['height', '_length']) >= altitude;
|
|
2483
|
+
if (curItem.get('id') !== item.id) {
|
|
2484
|
+
var detectObjectsAtSameAltitudeFlag = curItem.get('layoutpos') === 'Base' ? item.properties.getIn(['altitude', '_length']) <= curItem.get('properties').getIn(['altitude', '_length']) + tempHeight.get('_length') : item.properties.getIn(['altitude', '_length']) + item.properties.getIn(['height', '_length']) >= curItem.get('properties').getIn(['altitude', '_length']);
|
|
2516
2485
|
if (detectObjectsAtSameAltitudeFlag) {
|
|
2517
2486
|
var x = val.pos.x;
|
|
2518
2487
|
var y = val.pos.y;
|
|
@@ -2544,67 +2513,27 @@ function getAllItems2(layer, catalog) {
|
|
|
2544
2513
|
}
|
|
2545
2514
|
}
|
|
2546
2515
|
});
|
|
2547
|
-
|
|
2548
|
-
// layer.holes.forEach(hole => {
|
|
2549
|
-
// let val = {pos:{x:hole.x, y:hole.y}, rotRad:hole.rotation};
|
|
2550
|
-
// let catid = hole.type;
|
|
2551
|
-
// let cat = catalog.elements[catid];
|
|
2552
|
-
// let width = hole.properties.getIn(['width']).getIn(['length']);
|
|
2553
|
-
// let height = hole.properties.getIn(['height']).getIn(['length']);
|
|
2554
|
-
// val.size = {width, height};
|
|
2555
|
-
// let otherItem = {
|
|
2556
|
-
// hole,
|
|
2557
|
-
// cat
|
|
2558
|
-
// }
|
|
2559
|
-
|
|
2560
|
-
// // if (!GeometryUtils.needSnap(currentItem, otherItem)) {
|
|
2561
|
-
// // return;
|
|
2562
|
-
// // }
|
|
2563
|
-
|
|
2564
|
-
// if (!hole.selected) {
|
|
2565
|
-
// let x = val.pos.x;
|
|
2566
|
-
// let y = val.pos.y;
|
|
2567
|
-
// let rotRad = val.rotRad;
|
|
2568
|
-
// let w = val.size.width / 2;
|
|
2569
|
-
// let mx = x - w * Math.cos(rotRad);
|
|
2570
|
-
// let my = y - w * Math.sin(rotRad);
|
|
2571
|
-
// let kx = x + w * Math.cos(rotRad);
|
|
2572
|
-
// let ky = y + w * Math.sin(rotRad);
|
|
2573
|
-
// let x0 = mx - 10 * Math.sin(rotRad);
|
|
2574
|
-
// let y0 = my + 10 * Math.cos(rotRad);
|
|
2575
|
-
// let x3 = mx + 10 * Math.sin(rotRad);
|
|
2576
|
-
// let y3 = my - 10 * Math.cos(rotRad);
|
|
2577
|
-
// let x1 = kx - 10 * Math.sin(rotRad);
|
|
2578
|
-
// let y1 = ky + 10 * Math.cos(rotRad);
|
|
2579
|
-
// let x2 = kx + 10 * Math.sin(rotRad);
|
|
2580
|
-
// let y2 = ky - 10 * Math.cos(rotRad);
|
|
2581
|
-
// rectarray.push({'rect':[point(x0,y0), point(x1,y1) ,point(x0,y0), point(x1,y1)]});
|
|
2582
|
-
// rectarray.push({'rect':[point(x1,y1), point(x2,y2), point(x1,y1), point(x2,y2)]}); // right
|
|
2583
|
-
// rectarray.push({'rect':[point(x2,y2), point(x3,y3), point(x2,y2), point(x3,y3)]}); // front
|
|
2584
|
-
// rectarray.push({'rect':[point(x3,y3), point(x0,y0), point(x3,y3), point(x0,y0)]}); // left
|
|
2585
|
-
// }
|
|
2586
|
-
// });
|
|
2587
2516
|
return {
|
|
2588
2517
|
others: rectarray
|
|
2589
2518
|
};
|
|
2590
2519
|
}
|
|
2591
|
-
export function calcDistancesFromItemToWalls(
|
|
2592
|
-
if (isEmpty(
|
|
2593
|
-
var x =
|
|
2594
|
-
var y =
|
|
2595
|
-
var rotRad =
|
|
2520
|
+
export function calcDistancesFromItemToWalls(curItem, layer) {
|
|
2521
|
+
if (isEmpty(curItem)) return [];
|
|
2522
|
+
var x = curItem.get('x');
|
|
2523
|
+
var y = curItem.get('y');
|
|
2524
|
+
var rotRad = curItem.get('rotation') / 180 * Math.PI;
|
|
2596
2525
|
var width, height;
|
|
2597
|
-
if (
|
|
2598
|
-
width = convert(
|
|
2599
|
-
height = convert(
|
|
2526
|
+
if (curItem.get('properties').get('width') || curItem.get('properties').get('depth')) {
|
|
2527
|
+
width = convert(curItem.get('properties').get('width').get('_length')).from(curItem.get('properties').get('width').get('_unit')).to('cm');
|
|
2528
|
+
height = convert(curItem.get('properties').get('depth').get('_length')).from(curItem.get('properties').get('depth').get('_unit')).to('cm');
|
|
2600
2529
|
} else {
|
|
2601
|
-
width = convert(
|
|
2602
|
-
height = convert(
|
|
2530
|
+
width = convert(curItem.info.sizeinfo.width).from('in').to('cm');
|
|
2531
|
+
height = convert(curItem.info.sizeinfo.depth).from('in').to('cm');
|
|
2603
2532
|
}
|
|
2604
2533
|
var center_h = 3 * height / 8;
|
|
2605
|
-
var center_x = x;
|
|
2534
|
+
var center_x = x; // middle of front line of cabinet rect
|
|
2606
2535
|
var center_y = y;
|
|
2607
|
-
var center_x1 = x - center_h * Math.sin(rotRad);
|
|
2536
|
+
var center_x1 = x - center_h * Math.sin(rotRad); // center point of cabinet rect
|
|
2608
2537
|
var center_y1 = y + center_h * Math.cos(rotRad);
|
|
2609
2538
|
var PointArray = [];
|
|
2610
2539
|
var itemInfo = {
|
|
@@ -2619,24 +2548,37 @@ export function calcDistancesFromItemToWalls(attributesFormData, layer, catalog)
|
|
|
2619
2548
|
height: height
|
|
2620
2549
|
};
|
|
2621
2550
|
var curiteminfo = getCalcRectFromItem2(itemInfo);
|
|
2622
|
-
var allItemRect = getAllItems2(
|
|
2551
|
+
var allItemRect = getAllItems2(curItem, layer);
|
|
2623
2552
|
var allLines = getAllLines(layer);
|
|
2624
2553
|
var allLineRects = buildRectFromLines(layer, allLines);
|
|
2625
2554
|
var allRect = allLineRects.concat(allItemRect.others);
|
|
2626
|
-
|
|
2627
|
-
|
|
2555
|
+
var _loop = function _loop(i) {
|
|
2556
|
+
// [rectCenterPoint] has four middle points of cabinet rect edges
|
|
2557
|
+
var centerpoint = curiteminfo.rectCenterPoint[i];
|
|
2558
|
+
var comparelength = []; // distance array from rectCenterPoint[i] to other lines(walls, other cabinet rect edges)
|
|
2628
2559
|
var a;
|
|
2629
|
-
var RectLineFuction;
|
|
2560
|
+
var RectLineFuction; // normal line of cabinet rect edge
|
|
2630
2561
|
if (centerpoint[1] === 180 || centerpoint[1] === 0) RectLineFuction = linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x1, center_y1);else RectLineFuction = linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x, center_y);
|
|
2631
2562
|
allRect.forEach(function (linerect) {
|
|
2563
|
+
// calc distance to all other lines
|
|
2632
2564
|
var p0 = clone_point(linerect.rect[2]);
|
|
2633
2565
|
var p1 = clone_point(linerect.rect[3]);
|
|
2634
|
-
var lineFunction = {};
|
|
2566
|
+
var lineFunction = {}; // other line function
|
|
2635
2567
|
if (p0.x !== p1.x || p0.y !== p1.y) lineFunction = linePassingThroughTwoPoints(p0.x, p0.y, p1.x, p1.y);
|
|
2568
|
+
// intersection between normal line and other line
|
|
2636
2569
|
var coordinatePoint = twoLinesIntersection(lineFunction.a, lineFunction.b, lineFunction.c, RectLineFuction.a, RectLineFuction.b, RectLineFuction.c);
|
|
2637
2570
|
if (coordinatePoint !== undefined) {
|
|
2638
|
-
if (
|
|
2639
|
-
|
|
2571
|
+
if (
|
|
2572
|
+
// intersection point is on the other line
|
|
2573
|
+
pointsDistance(p0.x, p0.y, p1.x, p1.y) > pointsDistance(p0.x, p0.y, coordinatePoint.x, coordinatePoint.y) && pointsDistance(p0.x, p0.y, p1.x, p1.y) > pointsDistance(p1.x, p1.y, coordinatePoint.x, coordinatePoint.y)) {
|
|
2574
|
+
// check the intersection point is outside direction of edge
|
|
2575
|
+
var isOutside = true;
|
|
2576
|
+
for (var j = 0; j < curiteminfo.rectCenterPoint.length; j++) {
|
|
2577
|
+
if (j === i) continue;
|
|
2578
|
+
var otherCenterPoint = curiteminfo.rectCenterPoint[j];
|
|
2579
|
+
if (isPointOnLineSegment(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y, otherCenterPoint[0].x, otherCenterPoint[0].y)) isOutside = false;
|
|
2580
|
+
}
|
|
2581
|
+
if (isOutside && pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
|
|
2640
2582
|
comparelength.push(pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y));
|
|
2641
2583
|
a = Math.min.apply(null, comparelength);
|
|
2642
2584
|
}
|
|
@@ -2644,7 +2586,21 @@ export function calcDistancesFromItemToWalls(attributesFormData, layer, catalog)
|
|
|
2644
2586
|
}
|
|
2645
2587
|
});
|
|
2646
2588
|
PointArray.push([a, centerpoint[1]]);
|
|
2589
|
+
};
|
|
2590
|
+
for (var i = 0; i < curiteminfo.rectCenterPoint.length; i++) {
|
|
2591
|
+
_loop(i);
|
|
2592
|
+
}
|
|
2593
|
+
PointArray.forEach(function (pointElement, index) {
|
|
2594
|
+
if (pointElement[0] == undefined) PointArray[index][0] = 0;
|
|
2647
2595
|
});
|
|
2596
|
+
var cnt = 0;
|
|
2597
|
+
PointArray.forEach(function (pointElement) {
|
|
2598
|
+
if (pointElement[0] == 0) cnt++;
|
|
2599
|
+
});
|
|
2600
|
+
if (cnt == 4 || cnt == 3) {
|
|
2601
|
+
PointArray[0][0] = 100;
|
|
2602
|
+
PointArray[1][0] = 100;
|
|
2603
|
+
}
|
|
2648
2604
|
return {
|
|
2649
2605
|
PointArray: PointArray
|
|
2650
2606
|
};
|
package/es/utils/helper.js
CHANGED
|
@@ -5,10 +5,11 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
5
5
|
import { HDRCubeTextureLoader } from 'three/examples/jsm/loaders/HDRCubeTextureLoader.js';
|
|
6
6
|
import { ANIMATE_OBJECT_OPEN_DOOR_ROTATION_UNIT, ANIMATE_STEP_MAX, DECIMAL_PLACES_2, HDR_URLS, MAX_ZOOM_IN_SCALE, MODE_ELEVATION_VIEW, ZOOM_VARIABLE } from "../constants";
|
|
7
7
|
import * as Three from 'three';
|
|
8
|
-
import { returnReplaceableDeepSearchType } from "./../components/viewer2d/utils";
|
|
8
|
+
import { isWarningItem, returnReplaceableDeepSearchType } from "./../components/viewer2d/utils";
|
|
9
9
|
import { convert } from "./convert-units-lite";
|
|
10
10
|
import { formatNumber } from "./math";
|
|
11
11
|
import AWS from 'aws-sdk';
|
|
12
|
+
import { GeometryUtils, MoldingUtils } from "./export";
|
|
12
13
|
var s3 = new AWS.S3({
|
|
13
14
|
accessKeyId: process.env.REACT_APP_AWS_ID,
|
|
14
15
|
secretAccessKey: process.env.REACT_APP_AWS_SECRET
|
|
@@ -396,4 +397,40 @@ export function centering2D(state) {
|
|
|
396
397
|
});
|
|
397
398
|
if (viewer2DActions) updateViwer2D(viewer, viewer2DActions);
|
|
398
399
|
return state;
|
|
400
|
+
}
|
|
401
|
+
export function updatePayloadOfInternalEvent(currentObject, layer, catalog) {
|
|
402
|
+
var pointArray = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
403
|
+
if (isEmpty(currentObject)) return null;
|
|
404
|
+
var updatedPayload = currentObject.toJS();
|
|
405
|
+
if (isEmpty(layer) || isEmpty(catalog)) return updatedPayload;
|
|
406
|
+
if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'lines') {
|
|
407
|
+
// caculating length of selected line//
|
|
408
|
+
var v_a = layer.vertices.get(currentObject.vertices.get(0));
|
|
409
|
+
var v_b = layer.vertices.get(currentObject.vertices.get(1));
|
|
410
|
+
var distance = GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
|
|
411
|
+
var _length = convert(distance).from('cm').to(layer.unit);
|
|
412
|
+
updatedPayload.length = _length;
|
|
413
|
+
//////////////////////////////////////
|
|
414
|
+
} else if ((currentObject === null || currentObject === void 0 ? void 0 : currentObject.prototype) === 'items') {
|
|
415
|
+
var _catalog$elements$cur;
|
|
416
|
+
// check this cabinet has warning box
|
|
417
|
+
updatedPayload.isWarning = isWarningItem(currentObject);
|
|
418
|
+
// check this item is available molding
|
|
419
|
+
updatedPayload.isMoldingAvailable = MoldingUtils.isEnableItemForMolding(layer, currentObject);
|
|
420
|
+
// check this item is snapped to wall
|
|
421
|
+
updatedPayload.isAttachedWall = MoldingUtils.isAttachedWall(layer, currentObject);
|
|
422
|
+
// update distArray
|
|
423
|
+
if (pointArray) updatedPayload.distArray = pointArray;
|
|
424
|
+
|
|
425
|
+
// update sku_number using sku_array
|
|
426
|
+
var currentDoorColorId = currentObject.getIn(['doorStyle', 'id']);
|
|
427
|
+
var skuArray = catalog === null || catalog === void 0 || (_catalog$elements$cur = catalog.elements[currentObject.get('name')]) === null || _catalog$elements$cur === void 0 || (_catalog$elements$cur = _catalog$elements$cur.obj) === null || _catalog$elements$cur === void 0 ? void 0 : _catalog$elements$cur.skuArray;
|
|
428
|
+
var correctSKU = skuArray === null || skuArray === void 0 ? void 0 : skuArray.find(function (sku) {
|
|
429
|
+
return sku.door_color_id === currentDoorColorId;
|
|
430
|
+
});
|
|
431
|
+
if (correctSKU) {
|
|
432
|
+
updatedPayload.sku_number = correctSKU.sku;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
return updatedPayload;
|
|
399
436
|
}
|