kitchen-simulator 3.1.12 → 3.1.14
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/es/LiteKitchenConfigurator.js +5 -1
- package/es/catalog/holes/window-clear/planner-element.js +2 -2
- package/es/class/line.js +1 -1
- package/es/components/viewer2d/item.js +25 -9
- package/es/components/viewer2d/utils.js +2 -2
- package/es/components/viewer2d/viewer2d.js +1 -1
- package/es/components/viewer3d/viewer3d.js +36 -56
- package/es/constants.js +5 -2
- package/es/devLiteRenderer.js +76 -2
- package/es/utils/geometry.js +26 -10
- package/es/utils/isolate-event-handler.js +134 -75
- package/lib/LiteKitchenConfigurator.js +5 -1
- package/lib/catalog/holes/window-clear/planner-element.js +2 -2
- package/lib/class/line.js +1 -1
- package/lib/components/viewer2d/item.js +25 -9
- package/lib/components/viewer2d/utils.js +2 -2
- package/lib/components/viewer2d/viewer2d.js +1 -1
- package/lib/components/viewer3d/viewer3d.js +36 -56
- package/lib/constants.js +10 -7
- package/lib/devLiteRenderer.js +75 -1
- package/lib/utils/geometry.js +26 -10
- package/lib/utils/isolate-event-handler.js +133 -74
- package/package.json +1 -1
|
@@ -1200,7 +1200,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
1200
1200
|
var v_a = layer.vertices.get(evtElement.vertices.get(0));
|
|
1201
1201
|
var v_b = layer.vertices.get(evtElement.vertices.get(1));
|
|
1202
1202
|
var distance = _export.GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
|
|
1203
|
-
var _length = (0, _convertUnitsLite.convert)(distance).from('cm').to(
|
|
1203
|
+
var _length = (0, _convertUnitsLite.convert)(distance).from('cm').to(layer.unit);
|
|
1204
1204
|
payload.length = _length;
|
|
1205
1205
|
//////////////////////////////////////
|
|
1206
1206
|
} else if ((evtElement === null || evtElement === void 0 ? void 0 : evtElement.prototype) === 'items') {
|
|
@@ -1392,7 +1392,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
1392
1392
|
altitude = (0, _convertUnitsLite.convert)(altitude).from(unit).to(_this2.props.state.scene.unit);
|
|
1393
1393
|
}
|
|
1394
1394
|
scene3D.remove(angleObj);
|
|
1395
|
-
|
|
1395
|
+
scene3D.remove(toolObj);
|
|
1396
1396
|
if (!_this2.props.downloadFlag && !_this2.props.state.mode.includes('ING')) {
|
|
1397
1397
|
_this2.props.setToolbar('');
|
|
1398
1398
|
}
|
|
@@ -1466,7 +1466,8 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
1466
1466
|
});
|
|
1467
1467
|
});
|
|
1468
1468
|
var intersects = raycaster.intersectObjects(meshes, true);
|
|
1469
|
-
var _i10;
|
|
1469
|
+
var _i10; // index of warning object in intersects
|
|
1470
|
+
|
|
1470
1471
|
if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
|
|
1471
1472
|
for (_i10 = 0; _i10 < intersects.length; _i10++) {
|
|
1472
1473
|
if (intersects[_i10].object.name === 'warningObj') break;
|
|
@@ -1494,6 +1495,19 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
1494
1495
|
}
|
|
1495
1496
|
}
|
|
1496
1497
|
gridMatrix.copy(gridPlane.matrixWorld).invert();
|
|
1498
|
+
var addItemToolObj = function addItemToolObj() {
|
|
1499
|
+
var _intersects$_i;
|
|
1500
|
+
var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
|
|
1501
|
+
if ((0, _util.isUndefined)(selectedItem)) return;
|
|
1502
|
+
selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
|
|
1503
|
+
var itemPos = selectedItem.position.clone();
|
|
1504
|
+
if (((_intersects$_i = intersects[_i10]) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.object) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.parent) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.parent) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.userData) === null || _intersects$_i === void 0 ? void 0 : _intersects$_i.itemId) === selectedItem.userData.itemId) {
|
|
1505
|
+
toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
|
|
1506
|
+
} else {
|
|
1507
|
+
toolObj.position.set(planData.plan.position.x + itemPos.x, selectedElement.category === 'lighting' ? -planData.plan.position.y - selectedElement.properties.get('height').get('length') : planData.plan.position.y + selectedItem.children[0].position.y, planData.plan.position.z + itemPos.z);
|
|
1508
|
+
}
|
|
1509
|
+
scene3D.add(toolObj);
|
|
1510
|
+
};
|
|
1497
1511
|
if (Math.abs(mouse.x - _this2.lastMousePosition.x) <= 0.02 && Math.abs(mouse.y - _this2.lastMousePosition.y) <= 0.02 || bMove) {
|
|
1498
1512
|
if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
|
|
1499
1513
|
if (intersects[_i10] === undefined) {
|
|
@@ -1517,16 +1531,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
1517
1531
|
isSelected = true;
|
|
1518
1532
|
setTimeout(function () {
|
|
1519
1533
|
(0, _sceneCreator.getDistances)(layer);
|
|
1520
|
-
|
|
1521
|
-
if ((0, _util.isUndefined)(selectedItem)) return;
|
|
1522
|
-
selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
|
|
1523
|
-
var itemPos = selectedItem.position.clone();
|
|
1524
|
-
if (intersects[_i10].object.parent && intersects[_i10].object.parent.parent.userData.itemId === selectedItem.userData.itemId) {
|
|
1525
|
-
toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
|
|
1526
|
-
} else {
|
|
1527
|
-
toolObj.position.set(planData.plan.position.x + itemPos.x, selectedElement.category === 'lighting' ? -planData.plan.position.y - selectedElement.properties.get('height').get('length') : planData.plan.position.y + selectedItem.children[0].position.y, planData.plan.position.z + itemPos.z);
|
|
1528
|
-
}
|
|
1529
|
-
scene3D.add(toolObj);
|
|
1534
|
+
addItemToolObj();
|
|
1530
1535
|
_this2.setState({
|
|
1531
1536
|
toolObj: toolObj
|
|
1532
1537
|
});
|
|
@@ -1549,7 +1554,6 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
1549
1554
|
case 'holeID' in selectedObject:
|
|
1550
1555
|
elementID = selectedObject.holeID;
|
|
1551
1556
|
elementPrototype = 'holes';
|
|
1552
|
-
scene3D.remove(toolObj);
|
|
1553
1557
|
if (_this2.props.state.mode === _constants.MODE_DRAGGING_HOLE_3D) {
|
|
1554
1558
|
actions.holesActions.endDraggingHole3D(sPoint.x, sPoint.y);
|
|
1555
1559
|
}
|
|
@@ -1557,12 +1561,10 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
1557
1561
|
case 'lineID' in selectedObject:
|
|
1558
1562
|
elementID = selectedObject.lineID;
|
|
1559
1563
|
elementPrototype = 'lines';
|
|
1560
|
-
scene3D.remove(toolObj);
|
|
1561
1564
|
break;
|
|
1562
1565
|
case 'areaID' in selectedObject:
|
|
1563
1566
|
elementID = selectedObject.areaID;
|
|
1564
1567
|
elementPrototype = 'areas';
|
|
1565
|
-
scene3D.remove(toolObj);
|
|
1566
1568
|
break;
|
|
1567
1569
|
default:
|
|
1568
1570
|
break;
|
|
@@ -1572,24 +1574,22 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
1572
1574
|
isSelected = false;
|
|
1573
1575
|
}
|
|
1574
1576
|
} else {
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1577
|
+
var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
|
|
1578
|
+
if (bMove && !(0, _helper.isEmpty)(selectedItem)) {
|
|
1579
|
+
addItemToolObj();
|
|
1580
|
+
} else {
|
|
1581
|
+
isSelected = false;
|
|
1582
|
+
_this2.context.projectActions.unselectAll();
|
|
1583
|
+
switch (true) {
|
|
1584
|
+
case 'holeID' in selectedObject:
|
|
1585
|
+
actions.holesActions.endDraggingHole3D(sPoint.x, sPoint.y);
|
|
1586
|
+
break;
|
|
1587
|
+
default:
|
|
1588
|
+
_this2.context.itemsActions.removeReplacingSupport();
|
|
1589
|
+
break;
|
|
1590
|
+
}
|
|
1584
1591
|
}
|
|
1585
1592
|
}
|
|
1586
|
-
var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
|
|
1587
|
-
if (selectedItem) {
|
|
1588
|
-
selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
|
|
1589
|
-
var itemPos = selectedItem.position.clone();
|
|
1590
|
-
toolObj.position.set(planData.plan.position.x + itemPos.x, selectedElement.category === 'lighting' ? -planData.plan.position.y - selectedElement.properties.get('height').get('length') : planData.plan.position.y + selectedItem.children[0].position.y, planData.plan.position.z + itemPos.z);
|
|
1591
|
-
scene3D.add(toolObj);
|
|
1592
|
-
}
|
|
1593
1593
|
bMove = false;
|
|
1594
1594
|
bRotate = false;
|
|
1595
1595
|
bMoveUP = false;
|
|
@@ -1608,35 +1608,15 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
1608
1608
|
}
|
|
1609
1609
|
getPoint(event, alti);
|
|
1610
1610
|
if (bRotate) {
|
|
1611
|
-
|
|
1612
|
-
var _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
|
|
1613
|
-
if ((0, _util.isUndefined)(_selectedItem)) return;
|
|
1614
|
-
selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
|
|
1615
|
-
var _itemPos = _selectedItem.position.clone();
|
|
1616
|
-
if (((_intersects$_i = intersects[_i10]) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.object) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.parent) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.parent) === null || _intersects$_i === void 0 || (_intersects$_i = _intersects$_i.userData) === null || _intersects$_i === void 0 ? void 0 : _intersects$_i.itemId) === _selectedItem.userData.itemId) {
|
|
1617
|
-
toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
|
|
1618
|
-
} else {
|
|
1619
|
-
toolObj.position.set(planData.plan.position.x + _itemPos.x, selectedElement.category === 'lighting' ? -planData.plan.position.y - selectedElement.properties.get('height').get('length') : planData.plan.position.y + _selectedItem.children[0].position.y, planData.plan.position.z + _itemPos.z);
|
|
1620
|
-
}
|
|
1621
|
-
scene3D.add(toolObj);
|
|
1611
|
+
addItemToolObj();
|
|
1622
1612
|
_this2.setState({
|
|
1623
1613
|
toolObj: toolObj
|
|
1624
1614
|
});
|
|
1625
1615
|
_this2.context.itemsActions.endRotatingItem3D(Point.x, Point.y);
|
|
1626
1616
|
bRotate = false;
|
|
1627
|
-
}
|
|
1628
|
-
if (bMove) {
|
|
1617
|
+
} else if (bMove) {
|
|
1629
1618
|
bMove = false;
|
|
1630
|
-
|
|
1631
|
-
if ((0, _util.isUndefined)(_selectedItem2)) return;
|
|
1632
|
-
selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
|
|
1633
|
-
var _itemPos2 = _selectedItem2.position.clone();
|
|
1634
|
-
if (intersects[_i10].object.parent.parent.userData.itemId === _selectedItem2.userData.itemId) {
|
|
1635
|
-
toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
|
|
1636
|
-
} else {
|
|
1637
|
-
toolObj.position.set(planData.plan.position.x + _itemPos2.x, selectedElement.category === 'lighting' ? -planData.plan.position.y - selectedElement.properties.get('height').get('length') : planData.plan.position.y + _selectedItem2.children[0].position.y, planData.plan.position.z + _itemPos2.z);
|
|
1638
|
-
}
|
|
1639
|
-
scene3D.add(toolObj);
|
|
1619
|
+
addItemToolObj();
|
|
1640
1620
|
_this2.setState({
|
|
1641
1621
|
toolObj: toolObj
|
|
1642
1622
|
});
|
|
@@ -1656,7 +1636,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
1656
1636
|
_item3D.position.z = targetPoint.z;
|
|
1657
1637
|
_item3D.visible = true;
|
|
1658
1638
|
}
|
|
1659
|
-
}
|
|
1639
|
+
} else {}
|
|
1660
1640
|
if (bMoveUP) {
|
|
1661
1641
|
bMoveUP = false;
|
|
1662
1642
|
}
|
package/lib/constants.js
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
7
|
-
exports.
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.ZOOM_VARIABLE = exports.WARRANTY_VIEW = exports.WARRANTY_SUPPORT = exports.WARNING_MESSAGE = exports.WALL_ITEM_MEASUREMENT_LINE_COLOR = exports.WALL_CABINET_LAYOUTPOS = exports.VIEWER3D_ACTIONS = exports.VIEWER2D_ACTIONS = exports.VERTEX_ACTIONS = exports.VALIDATE_ITEM_POSTIONS = exports.USER_ACTIONS = exports.UPDATE_ZOOM_SCALE = exports.UPDATE_ROTATING_ITEM_CHANGED = exports.UPDATE_ROTATING_ITEM = exports.UPDATE_ROTATING = exports.UPDATE_POPUP_OPEN = exports.UPDATE_MOVING_STATE = exports.UPDATE_MOUSE_COORDS = exports.UPDATE_MOLDING = exports.UPDATE_ITEM_POSITION = exports.UPDATE_DRAWING_LINE = exports.UPDATE_DRAWING_ITEM = exports.UPDATE_DRAWING_HOLE_3D = void 0;
|
|
6
|
+
exports.END_ROTATING_ITEM = exports.END_LOADING = exports.END_FITTING_IMAGE = exports.END_DRAWING_LINE = exports.END_DRAWING_ITEM = exports.END_DRAWING_HOLE_3D = exports.END_DRAWING_HOLE = exports.END_DRAGGING_VERTEX = exports.END_DRAGGING_LINE = exports.END_DRAGGING_ITEM_3D = exports.END_DRAGGING_ITEM = exports.END_DRAGGING_HOLE_3D = exports.END_DRAGGING_HOLE = exports.END_CREATING_HOLE = exports.END_CREATING_CABINET = exports.ELEVATION_VIEW_TITLE = exports.ELEVATION_VIEW_RIGHT = exports.ELEVATION_VIEW_LEFT = exports.ELEVATION_VIEW_KEYWORD = exports.ELEVATION_VIEW_FRONT = exports.ELEVATION_VIEW_BACK = exports.ELEVATION_VIEW = exports.ELEMENT_VERTEX = exports.ELEMENT_LINE = exports.ELEMENT_ITEM = exports.ELEMENT_HOLE = exports.ELEMENT_AREA = exports.EDIT_WIDTH = exports.EDIT = exports.DUPLICATE_SELECTED = exports.DISTANCE_MEASUREMENT_LINE_COLOR = exports.DISTANCE_EPSILON = exports.DIFFERENT_VALUES_PATH_LENGTH = exports.DELTA = exports.DEFAULT_FONT_FAMILY = exports.DECIMAL_PLACES_3 = exports.DECIMAL_PLACES_2 = exports.DASH_LINE_COLOR = exports.CREATE_ROOM_WITH_SHAPE = exports.COPY_PROPERTIES = exports.CLIENTS_NAME = exports.CHANGE_WINDOW_DOOR_MEASURE = exports.CHANGE_WALL_LENGTH_MEASURE = exports.CHANGE_WALL_CABINET_MEASURE = exports.CHANGE_MEASUREMENT_UNIT = exports.CHANGE_CATALOG_PAGE = exports.CHANGE_BASE_CABINET_MEASURE = exports.CEIL_UNITS_LENGTH = exports.BROWN_COLOR = exports.BOTTOM_MOLDING_LOCATION = exports.BOTTOM = exports.BG_COLOR_OVERLAY = exports.BG_COLOR_HOVER = exports.BG_COLOR_1 = exports.BG_COLOR_0 = exports.BEGIN_UPLOADING_IMAGE = exports.BEGIN_ROTATING_ITEM_3D = exports.BEGIN_ROTATING_ITEM = exports.BEGIN_FITTING_IMAGE = exports.BEGIN_DRAWING_LINE = exports.BEGIN_DRAGGING_VERTEX = exports.BEGIN_DRAGGING_LINE = exports.BEGIN_DRAGGING_ITEM_3D = exports.BEGIN_DRAGGING_ITEM = exports.BEGIN_DRAGGING_HOLE_3D = exports.BEGIN_DRAGGING_HOLE = exports.BASE_ITEM_MEASUREMENT_LINE_COLOR = exports.BASE_CABINET_LAYOUTPOS = exports.BACK_DIST_ANG = exports.ATT_VERTEXT_TWO = exports.ATT_VERTEXT_ONE = exports.ATT_LINE_LENGTH = exports.ATT_ITEM_ROTATION = exports.ATT_ITEM_POS = exports.ATT_HOLE_OFFSET_B = exports.ATT_HOLE_OFFSET_A = exports.ARROW_TEXT_FORECOLOR = exports.ARROW_TEXT_FONTFACE = exports.ARROW_TEXT_BACKCOLOR = exports.ARROW_COLOR = exports.ARRAY_ELEVATION_VIEW_MODES = exports.ARRAY_3D_MODES = exports.AREA_ACTIONS = exports.API_SERVER_URL = exports.ANIMATE_STEP_MIN = exports.ANIMATE_STEP_MAX = exports.ANIMATE_OBJECT_OPEN_DOOR_ROTATION_UNIT = exports.ANIMATE_OBJECT = exports.ALTERATE_STATE = exports.ADD_VERTICAL_GUIDE = exports.ADD_TO_GROUP = exports.ADD_LAYER = exports.ADD_HORIZONTAL_GUIDE = exports.ADD_GROUP_FROM_SELECTED = exports.ADD_GROUP = exports.ADD_ELEMENT_TO_CATALOG = exports.ADD_CIRCULAR_GUIDE = exports.ADD_CABINETS = exports.ADD_APPLIANCES = exports.ACCENT_COLOR = void 0;
|
|
7
|
+
exports.MODE_DRAWING_ITEM_3D = exports.MODE_DRAWING_ITEM = exports.MODE_DRAWING_HOLE_3D = exports.MODE_DRAWING_HOLE = exports.MODE_DRAGGING_VERTEX = exports.MODE_DRAGGING_LINE = exports.MODE_DRAGGING_ITEM_3D = exports.MODE_DRAGGING_ITEM = exports.MODE_DRAGGING_HOLE_3D = exports.MODE_DRAGGING_HOLE = exports.MODE_CONFIGURING_PROJECT = exports.MODE_BACK_ELEVATION_VIEW = exports.MODE_3D_VIEW = exports.MODE_3D_FIRST_PERSON = exports.MODE_2D_ZOOM_OUT = exports.MODE_2D_ZOOM_IN = exports.MODE_2D_PAN = exports.MODE = exports.MIN_ANGLE_DISALLOW_DRAW_WALL = exports.MIDDLE_MOLDING_LOCATION = exports.MEPSILON = exports.MAX_ZOOM_IN_SCALE = exports.MAX_ANGLE_SCALE = exports.MAKE_FLOOR_PLAN = exports.LOGOUT = exports.LOGIN_SUCCESS = exports.LOGIN_ERROR = exports.LOCAL_STORAGE_TOKEN_VALUE = exports.LOCAL_STORAGE_TOKEN_NAME = exports.LOCAL_STORAGE_ORIGINAL_TOKEN = exports.LOCAL_STORAGE_CUSTOMER_INFO = exports.LOCAL_STORAGE_CART_ACTION = exports.LOAD_PROJECT = exports.LIST_QUANTITIES = exports.LIST_PARTS = exports.LINE_THICKNESS = exports.LINE_ACTIONS = exports.LEFT_DIST_ANG = exports.LEFT = exports.LABEL_COLOR = exports.KITCHEN_KONFIGURATOR = exports.KEYBOARD_BUTTON_CODE = exports.ITEM_TYPE = exports.ITEM_MOVE_UP = exports.ITEMS_ACTIONS = exports.INVERT = exports.INTERNAL_EVENT_UNSELECT_ALL = exports.INTERNAL_EVENT_SYNC_SCENE = exports.INTERNAL_EVENT_START_DRAW_WALL = exports.INTERNAL_EVENT_SELECT_ELEMENT = exports.INTERNAL_EVENT_ROTATE_ELEMENT = exports.INTERNAL_EVENT_REPLACE_CABINET = exports.INTERNAL_EVENT_ITEMS_CATALOG = exports.INTERNAL_EVENT_DRAW_ELEMENT = exports.INTERNAL_EVENT_DRAG_ELEMENT = exports.INSTALLATION_TYPE_SKU_SUFFIX = exports.INSTALLATION_TYPE_NAME = exports.INSTALLATION_SUFFIX_TYPE = exports.INIT_CATALOG = exports.HOLE_NAMES = exports.HOLE_ACTIONS = exports.HDR_URLS = exports.HAS_LOADINGBAR = exports.GROUP_TRANSLATE = exports.GROUP_ROTATE = exports.GROUP_ACTIONS = exports.GO_BACK_TO_CATALOG_PAGE = exports.FRONT_DIST_ANG = exports.FINISHING_TYPE = exports.FINISHING_TOUCH = exports.EXTERNAL_EVENT_ZOOM_OUT = exports.EXTERNAL_EVENT_ZOOM_IN = exports.EXTERNAL_EVENT_UPDATE_PROPERTY = exports.EXTERNAL_EVENT_UPDATE_ATTRIBUTE = exports.EXTERNAL_EVENT_UNDO = exports.EXTERNAL_EVENT_TOGGLE_TO_ELEVATION = exports.EXTERNAL_EVENT_TOGGLE_TO_3D = exports.EXTERNAL_EVENT_TOGGLE_TO_2D = exports.EXTERNAL_EVENT_SYNC_SCENE = exports.EXTERNAL_EVENT_SET_MOLDING = exports.EXTERNAL_EVENT_SET_FINISHING = exports.EXTERNAL_EVENT_ROTATE_PAN = exports.EXTERNAL_EVENT_REPLACE_CABINET = exports.EXTERNAL_EVENT_REDO = exports.EXTERNAL_EVENT_PROJECT_SETTING = exports.EXTERNAL_EVENT_NEW_PROJECT = exports.EXTERNAL_EVENT_MOVE_PAN = exports.EXTERNAL_EVENT_LOAD_PROJECT = exports.EXTERNAL_EVENT_DUPLICATE_ELEMENT = exports.EXTERNAL_EVENT_DELETE_ELEMENT = exports.EXTERNAL_EVENT_CHANGE_DOORSTYLE = exports.EXTERNAL_EVENT_CENTERING_2D = exports.EXTERNAL_EVENT_ADD_WALL = exports.EXTERNAL_EVENT_ADD_ROOM_SHAPE = exports.EXTERNAL_EVENT_ADD_ITEM = exports.EXTERNAL_EVENT_ADD_HOLE = exports.ERROR_DATABASE = exports.EPSILON = exports.END_UPLOADING_IMAGE = exports.END_ROTATING_ITEM_3D = void 0;
|
|
8
|
+
exports.SET_DOOR_STYLE = exports.SET_DOOR_HANDLE = exports.SET_DISTANT = exports.SET_COUNTER_TOP = exports.SET_BACKSPLASH_VISIBLE = exports.SET_BACKSPLASH = exports.SET_APPLIANCE_MATERIAL = exports.SELECT_TOOL_ZOOM_OUT = exports.SELECT_TOOL_ZOOM_IN = exports.SELECT_TOOL_UPLOAD_IMAGE = exports.SELECT_TOOL_PAN = exports.SELECT_TOOL_EDIT = exports.SELECT_TOOL_DRAWING_LINE = exports.SELECT_TOOL_DRAWING_ITEM_3D = exports.SELECT_TOOL_DRAWING_ITEM = exports.SELECT_TOOL_DRAWING_HOLE_3D = exports.SELECT_TOOL_DRAWING_HOLE = exports.SELECT_TOOL_3D_VIEW = exports.SELECT_TOOL_3D_FIRST_PERSON = exports.SELECT_LINE = exports.SELECT_LAYER = exports.SELECT_ITEM = exports.SELECT_HOLE = exports.SELECT_GROUP = exports.SELECT_DOOR_STYLE = exports.SELECT_AREA = exports.SELECT_ALL = exports.SELECTALL = exports.SECONDARY_PURPLE_COLOR = exports.SECONDARY_BLUE_COLOR = exports.SCENE_ACTIONS = exports.SAVE_PROJECT = exports.SAVE_DESIGN = exports.ROOM_SHAPE_TYPE = exports.ROOM_SHAPE_MEASUREMENT_LINE_COLOR = exports.ROOM_ELEMENT_MEASUREMENT_LINE_COLOR = exports.ROLLBACK = exports.RIGHT_DIST_ANG = exports.RIGHT = exports.REVIEW_AND_QUOTE = exports.REQUEST_ASSISTANCE = exports.REPLACE_SUBMODULE = exports.REPLACE_ITEM = exports.REMOVE_VERTICAL_GUIDE = exports.REMOVE_REPLACE_SUBMODULE = exports.REMOVE_LINEAR = exports.REMOVE_LAYER = exports.REMOVE_HORIZONTAL_GUIDE = exports.REMOVE_GROUP_AND_DELETE_ELEMENTS = exports.REMOVE_GROUP = exports.REMOVE_FROM_GROUP = exports.REMOVE_DRAWING_SUPPORT = exports.REMOVE_CIRCULAR_GUIDE = exports.REMOVE = exports.REDO = exports.RECREATE = exports.PUSH_LAST_SELECTED_CATALOG_ELEMENT_TO_HISTORY = exports.PROP_RESIZE_WIDTH = exports.PROP_RESIZE_HEIGHT = exports.PROP_RESIZE_DEPTH = exports.PROP_OPEN_DOORS = exports.PROP_FLIP_DOOR_HANDLE = exports.PROP_ALTITUDE = exports.PROJECT_SETTING_OPTION = exports.PROJECT_RE_NAME = exports.PROJECT_NAME_LENGTH_LIMIT = exports.PROJECT_ACTIONS = exports.PRODUCT = exports.PRIMARY_GREEN_COLOR = exports.PASTE_PROPERTIES = exports.OVERLAP_SOME = exports.OVERLAP_SAME = exports.OVERLAP_NONE = exports.OVERLAP_LINK = exports.OVERLAP_INCLUDED = exports.OPEN_PROJECT_CONFIGURATOR = exports.OPEN_CATALOG = exports.OBJTYPE_MESH = exports.OBJTYPE_GROUP = exports.NO_DATA_DATABASE = exports.NEW_PROJECT_BTN = exports.NEW_PROJECT = exports.NEW_DESIGN = exports.MOVE_COMPONENT = exports.MOLDING_LOCATIONS = exports.MODE_WAITING_DRAWING_LINE = exports.MODE_VIEWING_CATALOG = exports.MODE_UPLOADING_IMAGE = exports.MODE_SNAPPING = exports.MODE_ROTATING_ITEM_3D = exports.MODE_ROTATING_ITEM = exports.MODE_RIGHT_ELEVATION_VIEW = exports.MODE_LEFT_ELEVATION_VIEW = exports.MODE_IDLE_3D = exports.MODE_IDLE = exports.MODE_FRONT_VIEW = exports.MODE_FRONT_ELEVATION_VIEW = exports.MODE_FITTING_IMAGE = exports.MODE_ELEVATION_VIEW = exports.MODE_DRAWING_LINE = void 0;
|
|
9
|
+
exports.UPDATE_DRAGGING_LINE = exports.UPDATE_DRAGGING_ITEM_CHANGED = exports.UPDATE_DRAGGING_ITEM_3DY = exports.UPDATE_DRAGGING_ITEM_3DX = exports.UPDATE_DRAGGING_ITEM = exports.UPDATE_DRAGGING_HOLE_RULER_CHANGED = exports.UPDATE_DRAGGING_HOLE_CHANGED = exports.UPDATE_DRAGGING_HOLE_3D = exports.UPDATE_DRAGGING_HOLE = exports.UPDATE_CEIL_HEIGHT_UNIT = exports.UPDATE_CEIL_HEIGHT = exports.UPDATE_3D_CEIL_HEIGHT_UNIT = exports.UPDATE_3D_CEIL_HEIGHT = exports.UPDATE_2D_CAMERA = exports.UNSELECT_GROUP = exports.UNSELECT_ALL = exports.UNIT_MILLIMETER = exports.UNIT_MILE = exports.UNIT_METER = exports.UNIT_INCH = exports.UNIT_FOOT = exports.UNIT_CENTIMETER = exports.UNIT_ANGLE = exports.UNITS_LENGTH = exports.UNDO = exports.UNCREATE = exports.TWO_D_FLOOR_PLAN = exports.TOP_MOLDING_LOCATION = exports.TOP = exports.TOGGLE_SNAP = exports.TOGGLE_LOADING_CABINET = exports.TOE_KICK_MOLDING = exports.TITLE_SMALL_COLOR = exports.TITLE_COLOR = exports.THROW_WARNING = exports.THROW_ERROR = exports.TEXT_COLOR_NEUTRAL_7 = exports.TEXT_COLOR_NEUTRAL_6 = exports.TEXT_COLOR_NEUTRAL_5 = exports.TEXT_COLOR_NEUTRAL_4 = exports.TEXT_COLOR_NEUTRAL_3 = exports.TEXT_COLOR_NEUTRAL_2 = exports.TEXT_COLOR_NEUTRAL_1 = exports.TEXT_COLOR_NEUTRAL_0 = exports.TEXT_COLOR = exports.TECHNICAL_VIEW = exports.TALL_CABINET_LAYOUTPOS = exports.TAKE_PICTURE = exports.SUBTOTAL = exports.SUBMIT_REQUEST_ASSIST = exports.SUBMIT_DESIGN = exports.SUBMIT_ADD_CART = exports.STORE_DIST_ARRAY = exports.STOP_DRAWING_LINE = exports.STEP_CABINET_CHOOSE_PRODUCT = exports.STATUS_WARNING_LIGHT_COLOR = exports.STATUS_WARNING_COLOR = exports.STATUS_POSITIVE_LIGHT_COLOR = exports.STATUS_POSITIVE_COLOR = exports.STATUS_OVERDUE_LIGHT_COLOR = exports.STATUS_OVERDUE_COLOR = exports.STATUS_NEGATIVE_LIGHT_COLOR = exports.STATUS_NEGATIVE_COLOR = exports.STATUS_INFO_LIGHT_COLOR = exports.STATUS_INFO_COLOR = exports.SHIFT2DON = exports.SHIFT2DOFF = exports.SHAPE_SVG_WIDTH = exports.SHAPE_SVG_PADDING = exports.SHAPE_SVG_DEPTH = exports.SHADE_LIGHT_PURPLE_COLOR = exports.SHADE_LIGHT_GREEN_COLOR = exports.SHADE_LIGHT_BLUE_COLOR = exports.SHADE_DARK_PURPLE_COLOR = exports.SHADE_DARK_GREEN_COLOR = exports.SHADE_DARK_BLUE_COLOR = exports.SET_WALL_COLOR = exports.SET_USER_DATA = exports.SET_STATE_PROPERTIES = exports.SET_ROTATE_STATUS = exports.SET_RELATED_LINE = exports.SET_PROPERTIES = exports.SET_PROJECT_PROPERTIES = exports.SET_PROJECT_ID = exports.SET_MOVE_STATUS = exports.SET_MOLDING = exports.SET_MODELLING = exports.SET_MODE = exports.SET_LINES_ATTRIBUTES = exports.SET_LAYER_PROPERTIES = exports.SET_ITEMS_ATTRIBUTES = exports.SET_IS_HELP = exports.SET_IS_CABINET_DRAWING = exports.SET_INITIAL_DOOR_STYLE = exports.SET_HOLES_ATTRIBUTES = exports.SET_HANDLE_MATERIAL = exports.SET_GROUP_PROPERTIES = exports.SET_GROUP_BARYCENTER = exports.SET_GROUP_ATTRIBUTES = exports.SET_FLOOR_STYLES = void 0;
|
|
10
|
+
exports.ZOOM_VARIABLE = exports.WARRANTY_VIEW = exports.WARRANTY_SUPPORT = exports.WARNING_MESSAGE = exports.WALL_ITEM_MEASUREMENT_LINE_COLOR = exports.WALL_CABINET_LAYOUTPOS = exports.VIEWER3D_ACTIONS = exports.VIEWER2D_ACTIONS = exports.VERTEX_ACTIONS = exports.VALIDATE_ITEM_POSTIONS = exports.USER_ACTIONS = exports.UPDATE_ZOOM_SCALE = exports.UPDATE_ROTATING_ITEM_CHANGED = exports.UPDATE_ROTATING_ITEM = exports.UPDATE_ROTATING = exports.UPDATE_POPUP_OPEN = exports.UPDATE_MOVING_STATE = exports.UPDATE_MOUSE_COORDS = exports.UPDATE_MOLDING = exports.UPDATE_ITEM_POSITION = exports.UPDATE_DRAWING_LINE = exports.UPDATE_DRAWING_ITEM = exports.UPDATE_DRAWING_HOLE_3D = exports.UPDATE_DRAWING_HOLE = exports.UPDATE_DRAGGING_VERTEX = void 0;
|
|
11
11
|
//API server
|
|
12
12
|
// export const API_SERVER = 'http://localhost:3000/';
|
|
13
13
|
// ACTIONS project
|
|
@@ -76,6 +76,7 @@ var CHANGE_WALL_LENGTH_MEASURE = exports.CHANGE_WALL_LENGTH_MEASURE = 'CHANGE_WA
|
|
|
76
76
|
var CHANGE_BASE_CABINET_MEASURE = exports.CHANGE_BASE_CABINET_MEASURE = 'CHANGE_BASE_CABINET_MEASURE';
|
|
77
77
|
var CHANGE_WALL_CABINET_MEASURE = exports.CHANGE_WALL_CABINET_MEASURE = 'CHANGE_WALL_CABINET_MEASURE';
|
|
78
78
|
var CHANGE_WINDOW_DOOR_MEASURE = exports.CHANGE_WINDOW_DOOR_MEASURE = 'CHANGE_WINDOW_DOOR_MEASURE';
|
|
79
|
+
var CHANGE_MEASUREMENT_UNIT = exports.CHANGE_MEASUREMENT_UNIT = 'CHANGE_MEASUREMENT_UNIT';
|
|
79
80
|
|
|
80
81
|
//ACTIONS viewer3D
|
|
81
82
|
var SELECT_TOOL_3D_VIEW = exports.SELECT_TOOL_3D_VIEW = 'SELECT_TOOL_3D_VIEW';
|
|
@@ -660,10 +661,11 @@ var PROJECT_SETTING_OPTION = exports.PROJECT_SETTING_OPTION = {
|
|
|
660
661
|
CHANGE_WALL_LENGTH_MEASURE: CHANGE_WALL_LENGTH_MEASURE,
|
|
661
662
|
CHANGE_BASE_CABINET_MEASURE: CHANGE_BASE_CABINET_MEASURE,
|
|
662
663
|
CHANGE_WALL_CABINET_MEASURE: CHANGE_WALL_CABINET_MEASURE,
|
|
663
|
-
CHANGE_WINDOW_DOOR_MEASURE: CHANGE_WINDOW_DOOR_MEASURE
|
|
664
|
+
CHANGE_WINDOW_DOOR_MEASURE: CHANGE_WINDOW_DOOR_MEASURE,
|
|
665
|
+
CHANGE_MEASUREMENT_UNIT: CHANGE_MEASUREMENT_UNIT
|
|
664
666
|
};
|
|
665
667
|
var HOLE_NAMES = exports.HOLE_NAMES = {
|
|
666
|
-
WINDOW_CLEAR: '
|
|
668
|
+
WINDOW_CLEAR: 'Window',
|
|
667
669
|
WINDOW_CROSS: 'Cross Window',
|
|
668
670
|
WINDOW_DOUBLE_HUNG: 'Double Hung Window',
|
|
669
671
|
WINDOW_VERTICAL: 'window-vertical',
|
|
@@ -749,6 +751,7 @@ var EXTERNAL_EVENT_UPDATE_ATTRIBUTE = exports.EXTERNAL_EVENT_UPDATE_ATTRIBUTE =
|
|
|
749
751
|
var EXTERNAL_EVENT_UPDATE_PROPERTY = exports.EXTERNAL_EVENT_UPDATE_PROPERTY = 'EXTERNAL_EVENT_UPDATE_PROPERTY'; // update the element's property (flip_doorhandle, open_doors...) in the property window
|
|
750
752
|
var EXTERNAL_EVENT_REPLACE_CABINET = exports.EXTERNAL_EVENT_REPLACE_CABINET = 'EXTERNAL_EVENT_REPLACE_CABINET';
|
|
751
753
|
var EXTERNAL_EVENT_SET_FINISHING = exports.EXTERNAL_EVENT_SET_FINISHING = 'EXTERNAL_EVENT_SET_FINISHING'; // set finishing(wallColor, floorStyle, doorHandle, backsplash, counterTop)
|
|
754
|
+
var EXTERNAL_EVENT_ROTATE_PAN = exports.EXTERNAL_EVENT_ROTATE_PAN = 'EXTERNAL_EVENT_ROTATE_PAN'; // external event for rotate pan
|
|
752
755
|
|
|
753
756
|
// internal event type
|
|
754
757
|
var INTERNAL_EVENT_UNSELECT_ALL = exports.INTERNAL_EVENT_UNSELECT_ALL = 'INTERNAL_EVENT_UNSELECT_ALL';
|
package/lib/devLiteRenderer.js
CHANGED
|
@@ -11,6 +11,7 @@ var _reactContainerDimensions = _interopRequireDefault(require("react-container-
|
|
|
11
11
|
var _projectItemsCatalog = _interopRequireDefault(require("./mocks/projectItemsCatalog.json"));
|
|
12
12
|
var _mockProps = _interopRequireDefault(require("./mocks/mockProps.json"));
|
|
13
13
|
var _cabinetPayload = _interopRequireDefault(require("./mocks/cabinetPayload2.json"));
|
|
14
|
+
var _cabinetPayload2 = _interopRequireDefault(require("./mocks/cabinetPayload.json"));
|
|
14
15
|
var _appliancePayload = _interopRequireDefault(require("./mocks/appliancePayload.json"));
|
|
15
16
|
var _doorStylePayload = _interopRequireDefault(require("./mocks/doorStylePayload2.json"));
|
|
16
17
|
var _roomShapePayload = _interopRequireDefault(require("./mocks/roomShapePayload.json"));
|
|
@@ -218,6 +219,15 @@ function WorkSpace(props) {
|
|
|
218
219
|
setExternalEvent(evt);
|
|
219
220
|
}
|
|
220
221
|
}, "Add B12 Cabinet"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
222
|
+
actionType: "danger",
|
|
223
|
+
onClick: function onClick() {
|
|
224
|
+
var evt = {
|
|
225
|
+
type: _constants.EXTERNAL_EVENT_ADD_ITEM,
|
|
226
|
+
payload: _cabinetPayload2["default"]
|
|
227
|
+
};
|
|
228
|
+
setExternalEvent(evt);
|
|
229
|
+
}
|
|
230
|
+
}, "Add W0930 Cabinet"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
221
231
|
actionType: "danger",
|
|
222
232
|
onClick: function onClick() {
|
|
223
233
|
var evt = {
|
|
@@ -683,7 +693,71 @@ function WorkSpace(props) {
|
|
|
683
693
|
};
|
|
684
694
|
setExternalEvent(evt);
|
|
685
695
|
}
|
|
686
|
-
}, "random width")
|
|
696
|
+
}, "random width"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
697
|
+
actionType: "primary",
|
|
698
|
+
onClick: function onClick() {
|
|
699
|
+
var evt = {
|
|
700
|
+
type: _constants.EXTERNAL_EVENT_ROTATE_PAN,
|
|
701
|
+
payload: {
|
|
702
|
+
rotateType: _constants.RIGHT
|
|
703
|
+
}
|
|
704
|
+
};
|
|
705
|
+
setExternalEvent(evt);
|
|
706
|
+
}
|
|
707
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
708
|
+
src: "/assets/img/svg/bottombar/spin-right.svg"
|
|
709
|
+
})), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
710
|
+
actionType: "primary",
|
|
711
|
+
onClick: function onClick() {
|
|
712
|
+
var evt = {
|
|
713
|
+
type: _constants.EXTERNAL_EVENT_ROTATE_PAN,
|
|
714
|
+
payload: {
|
|
715
|
+
rotateType: _constants.LEFT
|
|
716
|
+
}
|
|
717
|
+
};
|
|
718
|
+
setExternalEvent(evt);
|
|
719
|
+
}
|
|
720
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
721
|
+
src: "/assets/img/svg/bottombar/spin-left.svg"
|
|
722
|
+
})), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
723
|
+
actionType: "primary",
|
|
724
|
+
onClick: function onClick() {
|
|
725
|
+
var evt = {
|
|
726
|
+
type: _constants.EXTERNAL_EVENT_ROTATE_PAN,
|
|
727
|
+
payload: {
|
|
728
|
+
rotateType: _constants.TOP
|
|
729
|
+
}
|
|
730
|
+
};
|
|
731
|
+
setExternalEvent(evt);
|
|
732
|
+
}
|
|
733
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
734
|
+
src: "/assets/img/svg/bottombar/spin-up.svg"
|
|
735
|
+
})), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
736
|
+
actionType: "primary",
|
|
737
|
+
onClick: function onClick() {
|
|
738
|
+
var evt = {
|
|
739
|
+
type: _constants.EXTERNAL_EVENT_ROTATE_PAN,
|
|
740
|
+
payload: {
|
|
741
|
+
rotateType: _constants.BOTTOM
|
|
742
|
+
}
|
|
743
|
+
};
|
|
744
|
+
setExternalEvent(evt);
|
|
745
|
+
}
|
|
746
|
+
}, /*#__PURE__*/_react["default"].createElement("img", {
|
|
747
|
+
src: "/assets/img/svg/bottombar/spin-down.svg"
|
|
748
|
+
})), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
749
|
+
actionType: "danger",
|
|
750
|
+
onClick: function onClick() {
|
|
751
|
+
var evt = {
|
|
752
|
+
type: _constants.EXTERNAL_EVENT_PROJECT_SETTING,
|
|
753
|
+
payload: {
|
|
754
|
+
option: _constants.PROJECT_SETTING_OPTION.CHANGE_MEASUREMENT_UNIT,
|
|
755
|
+
value: "cm"
|
|
756
|
+
}
|
|
757
|
+
};
|
|
758
|
+
setExternalEvent(evt);
|
|
759
|
+
}
|
|
760
|
+
}, "Setting-MeasurementUnit-'cm'")), /*#__PURE__*/_react["default"].createElement(_LiteRenderer["default"], {
|
|
687
761
|
width: props.width,
|
|
688
762
|
height: props.height,
|
|
689
763
|
configData: _mockProps["default"].configData,
|
package/lib/utils/geometry.js
CHANGED
|
@@ -2581,7 +2581,7 @@ function getAllItems2(curItem, layer) {
|
|
|
2581
2581
|
height: height
|
|
2582
2582
|
};
|
|
2583
2583
|
if (curItem.get('id') !== item.id) {
|
|
2584
|
-
var detectObjectsAtSameAltitudeFlag =
|
|
2584
|
+
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']);
|
|
2585
2585
|
if (detectObjectsAtSameAltitudeFlag) {
|
|
2586
2586
|
var x = val.pos.x;
|
|
2587
2587
|
var y = val.pos.y;
|
|
@@ -2631,9 +2631,9 @@ function calcDistancesFromItemToWalls(curItem, layer) {
|
|
|
2631
2631
|
height = (0, _convertUnitsLite.convert)(curItem.info.sizeinfo.depth).from('in').to('cm');
|
|
2632
2632
|
}
|
|
2633
2633
|
var center_h = 3 * height / 8;
|
|
2634
|
-
var center_x = x;
|
|
2634
|
+
var center_x = x; // middle of front line of cabinet rect
|
|
2635
2635
|
var center_y = y;
|
|
2636
|
-
var center_x1 = x - center_h * Math.sin(rotRad);
|
|
2636
|
+
var center_x1 = x - center_h * Math.sin(rotRad); // center point of cabinet rect
|
|
2637
2637
|
var center_y1 = y + center_h * Math.cos(rotRad);
|
|
2638
2638
|
var PointArray = [];
|
|
2639
2639
|
var itemInfo = {
|
|
@@ -2652,20 +2652,33 @@ function calcDistancesFromItemToWalls(curItem, layer) {
|
|
|
2652
2652
|
var allLines = getAllLines(layer);
|
|
2653
2653
|
var allLineRects = buildRectFromLines(layer, allLines);
|
|
2654
2654
|
var allRect = allLineRects.concat(allItemRect.others);
|
|
2655
|
-
|
|
2656
|
-
|
|
2655
|
+
var _loop = function _loop(i) {
|
|
2656
|
+
// [rectCenterPoint] has four middle points of cabinet rect edges
|
|
2657
|
+
var centerpoint = curiteminfo.rectCenterPoint[i];
|
|
2658
|
+
var comparelength = []; // distance array from rectCenterPoint[i] to other lines(walls, other cabinet rect edges)
|
|
2657
2659
|
var a;
|
|
2658
|
-
var RectLineFuction;
|
|
2660
|
+
var RectLineFuction; // normal line of cabinet rect edge
|
|
2659
2661
|
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);
|
|
2660
2662
|
allRect.forEach(function (linerect) {
|
|
2663
|
+
// calc distance to all other lines
|
|
2661
2664
|
var p0 = clone_point(linerect.rect[2]);
|
|
2662
2665
|
var p1 = clone_point(linerect.rect[3]);
|
|
2663
|
-
var lineFunction = {};
|
|
2666
|
+
var lineFunction = {}; // other line function
|
|
2664
2667
|
if (p0.x !== p1.x || p0.y !== p1.y) lineFunction = linePassingThroughTwoPoints(p0.x, p0.y, p1.x, p1.y);
|
|
2668
|
+
// intersection between normal line and other line
|
|
2665
2669
|
var coordinatePoint = twoLinesIntersection(lineFunction.a, lineFunction.b, lineFunction.c, RectLineFuction.a, RectLineFuction.b, RectLineFuction.c);
|
|
2666
2670
|
if (coordinatePoint !== undefined) {
|
|
2667
|
-
if (
|
|
2668
|
-
|
|
2671
|
+
if (
|
|
2672
|
+
// intersection point is on the other line
|
|
2673
|
+
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)) {
|
|
2674
|
+
// check the intersection point is outside direction of edge
|
|
2675
|
+
var isOutside = true;
|
|
2676
|
+
for (var j = 0; j < curiteminfo.rectCenterPoint.length; j++) {
|
|
2677
|
+
if (j === i) continue;
|
|
2678
|
+
var otherCenterPoint = curiteminfo.rectCenterPoint[j];
|
|
2679
|
+
if (isPointOnLineSegment(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y, otherCenterPoint[0].x, otherCenterPoint[0].y)) isOutside = false;
|
|
2680
|
+
}
|
|
2681
|
+
if (isOutside && pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
|
|
2669
2682
|
comparelength.push(pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y));
|
|
2670
2683
|
a = Math.min.apply(null, comparelength);
|
|
2671
2684
|
}
|
|
@@ -2673,7 +2686,10 @@ function calcDistancesFromItemToWalls(curItem, layer) {
|
|
|
2673
2686
|
}
|
|
2674
2687
|
});
|
|
2675
2688
|
PointArray.push([a, centerpoint[1]]);
|
|
2676
|
-
}
|
|
2689
|
+
};
|
|
2690
|
+
for (var i = 0; i < curiteminfo.rectCenterPoint.length; i++) {
|
|
2691
|
+
_loop(i);
|
|
2692
|
+
}
|
|
2677
2693
|
PointArray.forEach(function (pointElement, index) {
|
|
2678
2694
|
if (pointElement[0] == undefined) PointArray[index][0] = 0;
|
|
2679
2695
|
});
|