kitchen-simulator 4.0.6-react-18 → 4.0.7-measurement-unit-payload
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 +162 -107
- package/es/LiteRenderer.js +162 -137
- package/es/actions/export.js +25 -12
- package/es/actions/project-actions.js +2 -1
- 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/factories/wall-factory.js +1 -1
- 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 +24 -11
- package/es/catalog/utils/item-loader.js +38 -34
- package/es/class/hole.js +0 -2
- package/es/class/item.js +99 -70
- package/es/class/layer.js +1 -1
- package/es/class/line.js +4 -8
- package/es/class/project.js +96 -81
- package/es/components/content.js +5 -93
- 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 +29 -27
- 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/grids/grid-streak.js +1 -1
- package/es/components/viewer2d/group.js +5 -4
- package/es/components/viewer2d/item.js +155 -359
- package/es/components/viewer2d/layer.js +1 -1
- package/es/components/viewer2d/line.js +22 -52
- package/es/components/viewer2d/ruler.js +16 -11
- package/es/components/viewer2d/rulerDist.js +38 -51
- package/es/components/viewer2d/rulerX.js +4 -2
- package/es/components/viewer2d/rulerY.js +3 -0
- package/es/components/viewer2d/scene.js +17 -12
- package/es/components/viewer2d/state.js +1 -1
- package/es/components/viewer2d/utils.js +2 -2
- package/es/components/viewer2d/vertex.js +3 -2
- package/es/components/viewer2d/viewer2d.js +56 -87
- package/es/components/viewer3d/ruler-utils/scene3D.js +1 -1
- package/es/components/viewer3d/scene-creator.js +270 -69
- package/es/components/viewer3d/viewer3d-first-person.js +24 -26
- package/es/components/viewer3d/viewer3d.js +115 -120
- package/es/constants.js +7 -2
- package/es/devLiteRenderer.js +491 -150
- package/es/index.js +627 -1
- package/es/models.js +13 -8
- package/es/plugins/SVGLoader.js +1414 -0
- package/es/plugins/console-debugger.js +34 -0
- package/es/plugins/export.js +7 -0
- package/es/plugins/keyboard.js +110 -0
- package/es/reducers/project-reducer.js +4 -1
- package/es/reducers/viewer2d-reducer.js +3 -1
- package/es/reducers/viewer3d-reducer.js +3 -1
- package/es/styles/export.js +5 -0
- package/es/styles/tabs.css +40 -0
- package/es/utils/geometry.js +77 -119
- package/es/utils/helper.js +38 -1
- package/es/utils/isolate-event-handler.js +829 -609
- package/es/utils/molding.js +459 -11
- package/es/utils/ruler.js +58 -0
- package/lib/AppContext.js +1 -1
- package/lib/LiteKitchenConfigurator.js +161 -107
- package/lib/LiteRenderer.js +161 -137
- package/lib/actions/export.js +35 -39
- package/lib/actions/project-actions.js +2 -1
- 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/factories/wall-factory.js +1 -1
- 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 +24 -11
- package/lib/catalog/utils/item-loader.js +38 -34
- package/lib/class/hole.js +0 -2
- package/lib/class/item.js +97 -68
- package/lib/class/layer.js +1 -1
- package/lib/class/line.js +3 -7
- package/lib/class/project.js +96 -81
- package/lib/components/content.js +5 -93
- 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 +29 -27
- 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/grids/grid-streak.js +1 -1
- package/lib/components/viewer2d/group.js +5 -4
- package/lib/components/viewer2d/item.js +152 -356
- package/lib/components/viewer2d/layer.js +1 -1
- package/lib/components/viewer2d/line.js +22 -52
- package/lib/components/viewer2d/ruler.js +15 -10
- package/lib/components/viewer2d/rulerDist.js +38 -51
- package/lib/components/viewer2d/rulerX.js +4 -2
- package/lib/components/viewer2d/rulerY.js +3 -0
- package/lib/components/viewer2d/scene.js +17 -12
- package/lib/components/viewer2d/state.js +1 -1
- package/lib/components/viewer2d/utils.js +2 -2
- package/lib/components/viewer2d/vertex.js +3 -2
- package/lib/components/viewer2d/viewer2d.js +54 -84
- package/lib/components/viewer3d/ruler-utils/scene3D.js +1 -1
- package/lib/components/viewer3d/scene-creator.js +267 -66
- package/lib/components/viewer3d/viewer3d-first-person.js +24 -26
- package/lib/components/viewer3d/viewer3d.js +112 -116
- package/lib/constants.js +12 -7
- package/lib/devLiteRenderer.js +489 -148
- package/lib/index.js +630 -6
- package/lib/models.js +13 -8
- package/lib/plugins/SVGLoader.js +1419 -0
- package/lib/plugins/console-debugger.js +42 -0
- package/lib/plugins/export.js +25 -0
- package/lib/plugins/keyboard.js +117 -0
- package/lib/reducers/project-reducer.js +4 -1
- package/lib/reducers/viewer2d-reducer.js +3 -1
- package/lib/reducers/viewer3d-reducer.js +3 -1
- package/lib/styles/export.js +13 -0
- package/lib/styles/tabs.css +40 -0
- package/lib/utils/geometry.js +77 -119
- package/lib/utils/helper.js +40 -1
- package/lib/utils/isolate-event-handler.js +829 -608
- package/lib/utils/molding.js +460 -9
- package/lib/utils/ruler.js +63 -0
- package/package.json +21 -20
- 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
|
@@ -19,17 +19,16 @@ import { checkCabinetOverlap, createBacksplash, deleteSpecifiedMeshObjects, fVLi
|
|
|
19
19
|
import { disposeObject, disposeScene } from "./three-memory-cleaner";
|
|
20
20
|
import diff from 'immutablediff';
|
|
21
21
|
import * as SharedStyle from "../../shared-style";
|
|
22
|
-
import { BASE_CABINET_LAYOUTPOS, MODE_3D_VIEW, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_HOLE_3D, MODE_DRAWING_ITEM_3D, MODE_ELEVATION_VIEW, MODE_IDLE_3D, MODE_ROTATING_ITEM_3D, SECONDARY_PURPLE_COLOR, TALL_CABINET_LAYOUTPOS, UNIT_CENTIMETER, WALL_CABINET_LAYOUTPOS, INTERNAL_EVENT_SELECT_ELEMENT, INTERNAL_EVENT_DRAG_ELEMENT, INTERNAL_EVENT_DRAW_ELEMENT, INTERNAL_EVENT_ROTATE_ELEMENT, MODE_ROTATING_ITEM, MODE_DRAGGING_HOLE_3D } from "../../constants";
|
|
22
|
+
import { BASE_CABINET_LAYOUTPOS, MODE_3D_VIEW, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_HOLE_3D, MODE_DRAWING_ITEM_3D, MODE_ELEVATION_VIEW, MODE_IDLE_3D, MODE_ROTATING_ITEM_3D, SECONDARY_PURPLE_COLOR, TALL_CABINET_LAYOUTPOS, UNIT_CENTIMETER, WALL_CABINET_LAYOUTPOS, INTERNAL_EVENT_SELECT_ELEMENT, INTERNAL_EVENT_DRAG_ELEMENT, INTERNAL_EVENT_DRAW_ELEMENT, INTERNAL_EVENT_ROTATE_ELEMENT, MODE_ROTATING_ITEM, MODE_DRAGGING_HOLE_3D, INTERNAL_EVENT_REPLACE_CABINET } from "../../constants";
|
|
23
23
|
import { isUndefined } from 'util';
|
|
24
24
|
import { verticesDistance } from "../../utils/geometry";
|
|
25
25
|
import { convert } from "../../utils/convert-units-lite";
|
|
26
26
|
import { GeometryUtils } from "../../utils/export";
|
|
27
|
-
import { handleCamRect, isElevationView, isEmpty } from "../../utils/helper";
|
|
27
|
+
import { handleCamRect, isElevationView, isEmpty, updatePayloadOfInternalEvent } from "../../utils/helper";
|
|
28
28
|
import { RGBELoader } from 'three/examples/jsm/loaders/RGBELoader';
|
|
29
29
|
import CameraControls from 'camera-controls';
|
|
30
30
|
import { getAllMeshes, vectorIntersectWithMesh } from "../../utils/objects-utils";
|
|
31
|
-
import {
|
|
32
|
-
import { MoldingUtils } from "../../utils/export";
|
|
31
|
+
import { returnReplaceableDeepSearchType } from "../viewer2d/utils";
|
|
33
32
|
CameraControls.install({
|
|
34
33
|
THREE: Three
|
|
35
34
|
});
|
|
@@ -232,6 +231,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
232
231
|
});
|
|
233
232
|
self.renderer.domElement.style.display = 'block';
|
|
234
233
|
}, 1500);
|
|
234
|
+
self.planData = planData;
|
|
235
235
|
});
|
|
236
236
|
var area = scene.getIn(['layers', scene.selectedLayer, 'areas']);
|
|
237
237
|
var layer = scene.getIn(['layers', scene.selectedLayer]);
|
|
@@ -670,7 +670,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
670
670
|
layer.lines.forEach(function (line) {
|
|
671
671
|
line.holes.forEach(function (holeID) {
|
|
672
672
|
var hole = layer.holes.get(holeID);
|
|
673
|
-
holes.push(hole);
|
|
673
|
+
if (hole) holes.push(hole);
|
|
674
674
|
});
|
|
675
675
|
});
|
|
676
676
|
var i = 0;
|
|
@@ -816,17 +816,19 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
816
816
|
this.snap = function (obj, layer) {
|
|
817
817
|
// snap operation
|
|
818
818
|
var target = obj.userData.target;
|
|
819
|
+
if (isEmpty(target)) return;
|
|
819
820
|
for (; target.parent != null;) {
|
|
820
821
|
if (target.name == 'pivot') break;
|
|
821
822
|
target = target.parent;
|
|
822
823
|
}
|
|
823
824
|
var source = obj.parent.parent.parent;
|
|
824
825
|
if (target.userData.type == 'item') {
|
|
826
|
+
var _item$properties$getI;
|
|
825
827
|
var sRot = layer.getIn(['items', source.userData.itemId]).rotation;
|
|
826
828
|
var tRot = layer.getIn(['items', target.userData.itemId]) ? layer.getIn(['items', target.userData.itemId]).rotation : 0;
|
|
827
829
|
var item = layer.getIn(['items', source.userData.itemId]);
|
|
828
830
|
var layoutType = item.layoutpos;
|
|
829
|
-
var altitudeLength = convert(item.properties.getIn(['altitude', '_length'])).from('in').to('cm');
|
|
831
|
+
var altitudeLength = convert(item.properties.getIn(['altitude', '_length'])).from((_item$properties$getI = item.properties.getIn(['altitude', '_unit'])) !== null && _item$properties$getI !== void 0 ? _item$properties$getI : 'in').to('cm');
|
|
830
832
|
var sBounding = source.children[0].userData;
|
|
831
833
|
var tBounding = target.children[0].userData;
|
|
832
834
|
var tPos = target.position.clone();
|
|
@@ -926,8 +928,9 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
926
928
|
snapFlag = false;
|
|
927
929
|
return;
|
|
928
930
|
} else {
|
|
931
|
+
var _item3$properties$get;
|
|
929
932
|
var _layoutType = _item3.layoutpos;
|
|
930
|
-
var _altitudeLength = convert(_item3.properties.getIn(['altitude', '_length'])).from('in').to('cm');
|
|
933
|
+
var _altitudeLength = convert(_item3.properties.getIn(['altitude', '_length'])).from((_item3$properties$get = _item3.properties.getIn(['altitude', '_unit'])) !== null && _item3$properties$get !== void 0 ? _item3$properties$get : 'in').to('cm');
|
|
931
934
|
var _sBounding = source.children[0].userData;
|
|
932
935
|
var _width = _sBounding.max.x - _sBounding.min.x;
|
|
933
936
|
var _height = _sBounding.max.y - _sBounding.min.y;
|
|
@@ -1186,18 +1189,10 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1186
1189
|
};
|
|
1187
1190
|
var sendInternalEvent = function sendInternalEvent(evtType, evtElement) {
|
|
1188
1191
|
var pointArray = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
|
|
1189
|
-
if (!isEmpty(evtType)) {
|
|
1190
|
-
var _this2$props$onIntern, _this2$props;
|
|
1191
|
-
var
|
|
1192
|
-
|
|
1193
|
-
// check this cabinet has warning box
|
|
1194
|
-
payload.isWarning = isWarningItem(evtElement);
|
|
1195
|
-
// check this item is available molding
|
|
1196
|
-
payload.isMoldingAvailable = MoldingUtils.isEnableItemForMolding(layer, evtElement); // check this item is snapped to wall
|
|
1197
|
-
payload.isAttachedWall = MoldingUtils.isAttachedWall(layer, evtElement);
|
|
1198
|
-
// update distArray
|
|
1199
|
-
if (pointArray) payload.distArray = pointArray;
|
|
1200
|
-
}
|
|
1192
|
+
if (!isEmpty(evtType) && !isEmpty(evtElement)) {
|
|
1193
|
+
var _state$get, _this2$props$onIntern, _this2$props;
|
|
1194
|
+
var catalog = (_state$get = state.get('catalog')) === null || _state$get === void 0 ? void 0 : _state$get.toJS();
|
|
1195
|
+
var payload = updatePayloadOfInternalEvent(evtElement, layer, catalog, pointArray);
|
|
1201
1196
|
(_this2$props$onIntern = (_this2$props = _this2.props).onInternalEvent) === null || _this2$props$onIntern === void 0 || _this2$props$onIntern.call(_this2$props, {
|
|
1202
1197
|
type: evtType,
|
|
1203
1198
|
value: payload
|
|
@@ -1355,11 +1350,6 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1355
1350
|
if (selectedFlag || toolIntersects.length > 0 && !isElevationView(mode)) {
|
|
1356
1351
|
cameraControls.mouseButtons.left = CameraControls.ACTION.NONE;
|
|
1357
1352
|
selectedFlag = false;
|
|
1358
|
-
} else {
|
|
1359
|
-
isSelected = false;
|
|
1360
|
-
_this2.context.projectActions.unselectAll();
|
|
1361
|
-
scene3D.remove(toolObj);
|
|
1362
|
-
_this2.context.itemsActions.removeReplacingSupport();
|
|
1363
1353
|
}
|
|
1364
1354
|
}
|
|
1365
1355
|
} else {
|
|
@@ -1372,10 +1362,12 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1372
1362
|
}
|
|
1373
1363
|
};
|
|
1374
1364
|
this.mouseUpEvent = function (event) {
|
|
1365
|
+
var _selectedObject;
|
|
1375
1366
|
var internalType = ''; // internalEvent type - select/drag/draw
|
|
1376
1367
|
var selectedElement; // internalEvent data
|
|
1377
1368
|
firstMove = 0;
|
|
1378
1369
|
var altitude = 0;
|
|
1370
|
+
var curLayer = _this2.props.state.scene.getIn(['layers', (_selectedObject = selectedObject) === null || _selectedObject === void 0 ? void 0 : _selectedObject.layerID]);
|
|
1379
1371
|
if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
|
|
1380
1372
|
var properties = allItemRect.cur.itemInfo.properties;
|
|
1381
1373
|
altitude = properties.getIn(['altitude', '_length']);
|
|
@@ -1396,7 +1388,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1396
1388
|
actions.itemsActions.endDrawingItem(_this2.props.state.scene.selectedLayer, sPoint.x, sPoint.y);
|
|
1397
1389
|
} else {
|
|
1398
1390
|
removeSnapBox();
|
|
1399
|
-
var polygon = GeometryUtils.getPoylgonPoints(layer);
|
|
1391
|
+
var polygon = GeometryUtils.getPoylgonPoints(curLayer !== null && curLayer !== void 0 ? curLayer : layer);
|
|
1400
1392
|
// if cursor is outside of room
|
|
1401
1393
|
if (polygon.length > 0 && !GeometryUtils.ContainsPoint(polygon, Point.x, Point.y)) {
|
|
1402
1394
|
actions.itemsActions.endDrawingItem(_this2.props.state.scene.selectedLayer, sPoint.x, sPoint.y);
|
|
@@ -1412,11 +1404,18 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1412
1404
|
}
|
|
1413
1405
|
switch (_this2.props.state.mode) {
|
|
1414
1406
|
case MODE_DRAGGING_ITEM_3D:
|
|
1407
|
+
case MODE_DRAGGING_HOLE_3D:
|
|
1415
1408
|
internalType = INTERNAL_EVENT_DRAG_ELEMENT;
|
|
1416
1409
|
break;
|
|
1417
1410
|
case MODE_ROTATING_ITEM_3D:
|
|
1418
1411
|
internalType = INTERNAL_EVENT_ROTATE_ELEMENT;
|
|
1419
1412
|
break;
|
|
1413
|
+
case MODE_DRAWING_HOLE_3D:
|
|
1414
|
+
internalType = INTERNAL_EVENT_DRAW_ELEMENT;
|
|
1415
|
+
break;
|
|
1416
|
+
case MODE_IDLE_3D:
|
|
1417
|
+
internalType = INTERNAL_EVENT_SELECT_ELEMENT;
|
|
1418
|
+
break;
|
|
1420
1419
|
}
|
|
1421
1420
|
if (_this2.props.state.mode == MODE_DRAGGING_ITEM_3D) {
|
|
1422
1421
|
_this2.context.itemsActions.endDraggingItem3D();
|
|
@@ -1450,7 +1449,8 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1450
1449
|
});
|
|
1451
1450
|
});
|
|
1452
1451
|
var intersects = raycaster.intersectObjects(meshes, true);
|
|
1453
|
-
var _i10;
|
|
1452
|
+
var _i10; // index of warning object in intersects
|
|
1453
|
+
|
|
1454
1454
|
if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
|
|
1455
1455
|
for (_i10 = 0; _i10 < intersects.length; _i10++) {
|
|
1456
1456
|
if (intersects[_i10].object.name === 'warningObj') break;
|
|
@@ -1466,6 +1466,9 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1466
1466
|
var replaceInfo = intersects[_i10].object.parent.parent.userData;
|
|
1467
1467
|
_this2.context.itemsActions.selectItem(replaceInfo.layerId, replaceInfo.itemId);
|
|
1468
1468
|
!_this2.props.downloadFlag && _this2.props.replaceCabinet(true);
|
|
1469
|
+
internalType = INTERNAL_EVENT_REPLACE_CABINET;
|
|
1470
|
+
var replaceElement = _this2.props.state.scene.layers.get(replaceInfo.layerId).items.get(replaceInfo.itemId);
|
|
1471
|
+
sendInternalEvent(internalType, replaceElement);
|
|
1469
1472
|
return;
|
|
1470
1473
|
}
|
|
1471
1474
|
}
|
|
@@ -1478,6 +1481,19 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1478
1481
|
}
|
|
1479
1482
|
}
|
|
1480
1483
|
gridMatrix.copy(gridPlane.matrixWorld).invert();
|
|
1484
|
+
var addItemToolObj = function addItemToolObj() {
|
|
1485
|
+
var _planData$sceneGraph, _selectedObject2, _intersects$_i;
|
|
1486
|
+
var selectedItem = (_planData$sceneGraph = planData.sceneGraph) === null || _planData$sceneGraph === void 0 || (_planData$sceneGraph = _planData$sceneGraph.layers[selectedObject.layerID]) === null || _planData$sceneGraph === void 0 ? void 0 : _planData$sceneGraph.items[(_selectedObject2 = selectedObject) === null || _selectedObject2 === void 0 ? void 0 : _selectedObject2.itemID];
|
|
1487
|
+
if (isUndefined(selectedItem)) return;
|
|
1488
|
+
selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
|
|
1489
|
+
var itemPos = selectedItem.position.clone();
|
|
1490
|
+
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) {
|
|
1491
|
+
toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
|
|
1492
|
+
} else {
|
|
1493
|
+
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);
|
|
1494
|
+
}
|
|
1495
|
+
scene3D.add(toolObj);
|
|
1496
|
+
};
|
|
1481
1497
|
if (Math.abs(mouse.x - _this2.lastMousePosition.x) <= 0.02 && Math.abs(mouse.y - _this2.lastMousePosition.y) <= 0.02 || bMove) {
|
|
1482
1498
|
if (intersects.length > 0 && !isNaN(intersects[0].distance)) {
|
|
1483
1499
|
if (intersects[_i10] === undefined) {
|
|
@@ -1500,38 +1516,20 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1500
1516
|
}
|
|
1501
1517
|
isSelected = true;
|
|
1502
1518
|
setTimeout(function () {
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
|
|
1507
|
-
var itemPos = selectedItem.position.clone();
|
|
1508
|
-
if (intersects[_i10].object.parent && intersects[_i10].object.parent.parent.userData.itemId === selectedItem.userData.itemId) {
|
|
1509
|
-
toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
|
|
1510
|
-
} else {
|
|
1511
|
-
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);
|
|
1512
|
-
}
|
|
1513
|
-
scene3D.add(toolObj);
|
|
1519
|
+
var _curLayer$id;
|
|
1520
|
+
addItemToolObj();
|
|
1521
|
+
getDistances(curLayer !== null && curLayer !== void 0 ? curLayer : layer, selectedElement);
|
|
1514
1522
|
_this2.setState({
|
|
1515
1523
|
toolObj: toolObj
|
|
1516
1524
|
});
|
|
1517
1525
|
// showItemButtons(layer.getIn(['items', selectedObject.itemID]), currentObject, event, camera, this.renderer);
|
|
1518
|
-
var pointArray = []
|
|
1519
|
-
|
|
1520
|
-
pointArray.push([fVLine[
|
|
1521
|
-
pointArray.push([fVLine[
|
|
1522
|
-
pointArray.push([fVLine[
|
|
1523
|
-
pointArray.
|
|
1524
|
-
|
|
1525
|
-
if (pointElement[0] == undefined) pointArray[index][0] = 0;
|
|
1526
|
-
});
|
|
1527
|
-
pointArray.forEach(function (pointElement) {
|
|
1528
|
-
if (pointElement[0] == 0) cnt++;
|
|
1529
|
-
});
|
|
1530
|
-
if (cnt == 4 || cnt == 3) {
|
|
1531
|
-
pointArray[0][0] = 100;
|
|
1532
|
-
pointArray[1][0] = 100;
|
|
1533
|
-
}
|
|
1534
|
-
actions.itemsActions.storeDistArray(layer.id, selectedObject.itemID, pointArray);
|
|
1526
|
+
var pointArray = [];
|
|
1527
|
+
// pointArray.push([fVLine[0].userData.distance, 90]);
|
|
1528
|
+
// pointArray.push([fVLine[1].userData.distance, -90]);
|
|
1529
|
+
// pointArray.push([fVLine[2].userData.distance, 180]);
|
|
1530
|
+
// pointArray.push([fVLine[3].userData.distance, 0]);
|
|
1531
|
+
pointArray = GeometryUtils.calcDistancesFromItemToWalls(selectedElement, curLayer !== null && curLayer !== void 0 ? curLayer : layer).PointArray;
|
|
1532
|
+
actions.itemsActions.storeDistArray((_curLayer$id = curLayer === null || curLayer === void 0 ? void 0 : curLayer.id) !== null && _curLayer$id !== void 0 ? _curLayer$id : layer.id, selectedObject.itemID, pointArray);
|
|
1535
1533
|
internalType = internalType ? internalType : INTERNAL_EVENT_SELECT_ELEMENT;
|
|
1536
1534
|
sendInternalEvent(internalType, selectedElement, pointArray);
|
|
1537
1535
|
});
|
|
@@ -1541,16 +1539,17 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1541
1539
|
var elementPrototype = null;
|
|
1542
1540
|
switch (true) {
|
|
1543
1541
|
case 'holeID' in selectedObject:
|
|
1544
|
-
|
|
1542
|
+
elementID = selectedObject.holeID;
|
|
1543
|
+
elementPrototype = 'holes';
|
|
1545
1544
|
if (_this2.props.state.mode === MODE_DRAGGING_HOLE_3D) {
|
|
1546
1545
|
actions.holesActions.endDraggingHole3D(sPoint.x, sPoint.y);
|
|
1547
|
-
internalType = INTERNAL_EVENT_SELECT_ELEMENT;
|
|
1548
|
-
elementID = selectedObject.holeID;
|
|
1549
|
-
elementPrototype = 'holes';
|
|
1550
1546
|
}
|
|
1551
1547
|
break;
|
|
1548
|
+
case 'lineID' in selectedObject:
|
|
1549
|
+
elementID = selectedObject.lineID;
|
|
1550
|
+
elementPrototype = 'lines';
|
|
1551
|
+
break;
|
|
1552
1552
|
case 'areaID' in selectedObject:
|
|
1553
|
-
internalType = INTERNAL_EVENT_SELECT_ELEMENT;
|
|
1554
1553
|
elementID = selectedObject.areaID;
|
|
1555
1554
|
elementPrototype = 'areas';
|
|
1556
1555
|
break;
|
|
@@ -1562,25 +1561,31 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1562
1561
|
isSelected = false;
|
|
1563
1562
|
}
|
|
1564
1563
|
} else {
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1564
|
+
var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
|
|
1565
|
+
if (bMove && !isEmpty(selectedItem)) {
|
|
1566
|
+
addItemToolObj();
|
|
1567
|
+
} else {
|
|
1568
|
+
isSelected = false;
|
|
1569
|
+
_this2.context.projectActions.unselectAll();
|
|
1570
|
+
switch (true) {
|
|
1571
|
+
case 'holeID' in selectedObject:
|
|
1572
|
+
actions.holesActions.endDraggingHole3D(sPoint.x, sPoint.y);
|
|
1573
|
+
break;
|
|
1574
|
+
default:
|
|
1575
|
+
_this2.context.itemsActions.removeReplacingSupport();
|
|
1576
|
+
break;
|
|
1577
|
+
}
|
|
1574
1578
|
}
|
|
1575
1579
|
}
|
|
1576
1580
|
bMove = false;
|
|
1577
1581
|
bRotate = false;
|
|
1578
1582
|
bMoveUP = false;
|
|
1579
1583
|
if (isSelected) {
|
|
1580
|
-
prepareSnap(layer);
|
|
1584
|
+
prepareSnap(curLayer !== null && curLayer !== void 0 ? curLayer : layer);
|
|
1581
1585
|
selectedObj = allItemRect.cur;
|
|
1582
1586
|
}
|
|
1583
1587
|
} else {
|
|
1588
|
+
var _planData$sceneGraph2, _selectedObject3, _selectedObject4;
|
|
1584
1589
|
visibleTransformBox(false);
|
|
1585
1590
|
var alti = 0;
|
|
1586
1591
|
if (allItemRect && allItemRect.cur && allItemRect.cur.itemInfo !== undefined) {
|
|
@@ -1590,18 +1595,9 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1590
1595
|
alti = convert(alti).from(_unit2).to(_this2.props.state.scene.unit);
|
|
1591
1596
|
}
|
|
1592
1597
|
getPoint(event, alti);
|
|
1598
|
+
var _selectedItem = planData === null || planData === void 0 || (_planData$sceneGraph2 = planData.sceneGraph) === null || _planData$sceneGraph2 === void 0 || (_planData$sceneGraph2 = _planData$sceneGraph2.layers[(_selectedObject3 = selectedObject) === null || _selectedObject3 === void 0 ? void 0 : _selectedObject3.layerID]) === null || _planData$sceneGraph2 === void 0 ? void 0 : _planData$sceneGraph2.items[(_selectedObject4 = selectedObject) === null || _selectedObject4 === void 0 ? void 0 : _selectedObject4.itemID];
|
|
1599
|
+
if (isSelected && !isEmpty(_selectedItem)) addItemToolObj();
|
|
1593
1600
|
if (bRotate) {
|
|
1594
|
-
var _intersects$_i;
|
|
1595
|
-
var selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
|
|
1596
|
-
if (isUndefined(selectedItem)) return;
|
|
1597
|
-
selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
|
|
1598
|
-
var itemPos = selectedItem.position.clone();
|
|
1599
|
-
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) {
|
|
1600
|
-
toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
|
|
1601
|
-
} else {
|
|
1602
|
-
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);
|
|
1603
|
-
}
|
|
1604
|
-
scene3D.add(toolObj);
|
|
1605
1601
|
_this2.setState({
|
|
1606
1602
|
toolObj: toolObj
|
|
1607
1603
|
});
|
|
@@ -1610,16 +1606,6 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1610
1606
|
}
|
|
1611
1607
|
if (bMove) {
|
|
1612
1608
|
bMove = false;
|
|
1613
|
-
var _selectedItem = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
|
|
1614
|
-
if (isUndefined(_selectedItem)) return;
|
|
1615
|
-
selectedElement = _this2.props.state.scene.layers.get(selectedObject.layerID).items.get(selectedObject.itemID);
|
|
1616
|
-
var _itemPos = _selectedItem.position.clone();
|
|
1617
|
-
if (intersects[_i10].object.parent.parent.userData.itemId === _selectedItem.userData.itemId) {
|
|
1618
|
-
toolObj.position.set(intersects[_i10].point.x, intersects[_i10].point.y, intersects[_i10].point.z);
|
|
1619
|
-
} else {
|
|
1620
|
-
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);
|
|
1621
|
-
}
|
|
1622
|
-
scene3D.add(toolObj);
|
|
1623
1609
|
_this2.setState({
|
|
1624
1610
|
toolObj: toolObj
|
|
1625
1611
|
});
|
|
@@ -1647,7 +1633,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
1647
1633
|
removeSnapBox();
|
|
1648
1634
|
actions.sceneActions.updateMovingState(true);
|
|
1649
1635
|
if (isSelected === true) {
|
|
1650
|
-
prepareSnap(layer);
|
|
1636
|
+
prepareSnap(curLayer !== null && curLayer !== void 0 ? curLayer : layer);
|
|
1651
1637
|
selectedObj = allItemRect.cur;
|
|
1652
1638
|
}
|
|
1653
1639
|
}
|
|
@@ -2046,8 +2032,9 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2046
2032
|
// handle snapBox, distArray, backsplash
|
|
2047
2033
|
this.handleAfterMovingItem = function () {
|
|
2048
2034
|
var layer = _this2.props.state.scene.getIn(['layers', selectedObject.layerID]);
|
|
2035
|
+
var item = layer.getIn(['items', selectedObject.itemID]);
|
|
2049
2036
|
var item3D = planData.sceneGraph.layers[selectedObject.layerID].items[selectedObject.itemID];
|
|
2050
|
-
getDistances(layer);
|
|
2037
|
+
getDistances(layer, item);
|
|
2051
2038
|
var pointArray = [],
|
|
2052
2039
|
cnt = 0;
|
|
2053
2040
|
pointArray.push([fVLine[0].userData.distance, 90]);
|
|
@@ -2086,7 +2073,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2086
2073
|
if (minDis < snapDelta && !snapFlag) {
|
|
2087
2074
|
_this2.snap(snapObj, layer);
|
|
2088
2075
|
snapFlag = true;
|
|
2089
|
-
getDistances(layer,
|
|
2076
|
+
getDistances(layer, item);
|
|
2090
2077
|
var _i13 = 0;
|
|
2091
2078
|
for (_i13 = 0; _i13 < fVLine.length; _i13++) {
|
|
2092
2079
|
if (fVLine[_i13].userData.distance < snapDelta) {
|
|
@@ -2445,18 +2432,14 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2445
2432
|
this.renderer.renderLists.dispose();
|
|
2446
2433
|
}
|
|
2447
2434
|
}, {
|
|
2448
|
-
key: "
|
|
2449
|
-
value: function
|
|
2435
|
+
key: "componentWillReceiveProps",
|
|
2436
|
+
value: function componentWillReceiveProps(nextProps) {
|
|
2450
2437
|
var _this4 = this;
|
|
2451
|
-
|
|
2452
|
-
|
|
2453
|
-
|
|
2454
|
-
|
|
2455
|
-
var
|
|
2456
|
-
width = _this$props.width,
|
|
2457
|
-
height = _this$props.height;
|
|
2458
|
-
var selectedLayer = this.props.state.getIn(['scene', 'layers', this.props.state.scene.selectedLayer]);
|
|
2459
|
-
var ceilHeight = convert(selectedLayer.ceilHeight).from(selectedLayer.unit).to(this.props.state.scene.unit);
|
|
2438
|
+
if (this.props.downloadFlag && diff(this.props.state, nextProps.state).toJS().length == 0 || isEmpty(nextProps.state.scene)) return;
|
|
2439
|
+
var width = nextProps.width,
|
|
2440
|
+
height = nextProps.height;
|
|
2441
|
+
var selectedLayer = nextProps.state.getIn(['scene', 'layers', nextProps.state.scene.selectedLayer]);
|
|
2442
|
+
var ceilHeight = convert(selectedLayer.ceilHeight).from(selectedLayer.unit).to(nextProps.state.scene.unit);
|
|
2460
2443
|
var actions = {
|
|
2461
2444
|
areaActions: this.context.areaActions,
|
|
2462
2445
|
holesActions: this.context.holesActions,
|
|
@@ -2466,7 +2449,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2466
2449
|
projectActions: this.context.projectActions,
|
|
2467
2450
|
catalog: this.context.catalog
|
|
2468
2451
|
};
|
|
2469
|
-
var isLoadingCabinet =
|
|
2452
|
+
var isLoadingCabinet = nextProps.state.scene.isLoadingCabinet;
|
|
2470
2453
|
if (this.state.isLoadingCabinet !== isLoadingCabinet) this.setState({
|
|
2471
2454
|
isLoadingCabinet: isLoadingCabinet
|
|
2472
2455
|
});
|
|
@@ -2477,7 +2460,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2477
2460
|
var allItemRect;
|
|
2478
2461
|
|
|
2479
2462
|
// handle camera setting
|
|
2480
|
-
switch (
|
|
2463
|
+
switch (this.props.state.mode) {
|
|
2481
2464
|
case MODE_ELEVATION_VIEW:
|
|
2482
2465
|
// when Elevation mode (camera: Orthographic)
|
|
2483
2466
|
var cameraRect = handleCamRect(width, height, ceilHeight, this.state.lineLength);
|
|
@@ -2495,12 +2478,12 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2495
2478
|
break;
|
|
2496
2479
|
}
|
|
2497
2480
|
this.camera.updateProjectionMatrix();
|
|
2498
|
-
var data =
|
|
2481
|
+
var data = nextProps.state.scene;
|
|
2499
2482
|
var layer = data.getIn(['layers', data.selectedLayer]);
|
|
2500
2483
|
var self = this;
|
|
2501
2484
|
function implementBacksplash() {
|
|
2502
|
-
if (isElevationView(self.props.state.mode)) return;
|
|
2503
|
-
var allItems = GeometryUtils.getAllItemSpecified(
|
|
2485
|
+
if (isElevationView(self.props.state.mode)) return; // apply backsplash when just 3D_mode, not elevation_mode
|
|
2486
|
+
var allItems = GeometryUtils.getAllItemSpecified(nextProps.state.scene, actions.catalog, BASE_CABINET_LAYOUTPOS);
|
|
2504
2487
|
var i,
|
|
2505
2488
|
items = [];
|
|
2506
2489
|
for (i = 0; i < allItems.others.length; i++) items.push(allItems.others[i]);
|
|
@@ -2509,7 +2492,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2509
2492
|
var calcRect = GeometryUtils.getCalcRectFromItem3D(items[i]);
|
|
2510
2493
|
var visible = GeometryUtils.isSnappedLine(calcRect, allLineRects);
|
|
2511
2494
|
actions.itemsActions.setBacksplashVisible(items[i].itemInfo.id, visible);
|
|
2512
|
-
createBacksplash(items[i],
|
|
2495
|
+
createBacksplash(items[i], nextProps.state.scene.getIn(['layers', nextProps.state.scene.selectedLayer]), planData, nextProps.state.scene);
|
|
2513
2496
|
}
|
|
2514
2497
|
}
|
|
2515
2498
|
function implementWarningBox() {
|
|
@@ -2537,13 +2520,16 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2537
2520
|
showflag: false
|
|
2538
2521
|
});
|
|
2539
2522
|
}
|
|
2540
|
-
if (
|
|
2541
|
-
var changedValues = diff(
|
|
2523
|
+
if (nextProps.state.scene !== this.props.state.scene || nextProps.state.doorStyle && nextProps.state.doorStyle.get('name') !== this.props.state.doorStyle.get('name')) {
|
|
2524
|
+
var changedValues = diff(this.props.state.scene, nextProps.state.scene);
|
|
2542
2525
|
prepareSnapSpec(layer);
|
|
2543
|
-
|
|
2544
|
-
|
|
2545
|
-
|
|
2546
|
-
|
|
2526
|
+
var isInteractiveMove = nextProps.state.mode === MODE_DRAGGING_ITEM_3D || nextProps.state.mode === MODE_ROTATING_ITEM_3D || nextProps.state.mode === MODE_DRAWING_ITEM_3D || nextProps.state.mode === MODE_DRAGGING_HOLE_3D || nextProps.state.mode === MODE_IDLE_3D;
|
|
2527
|
+
if (nextProps.state.doorStyle && nextProps.state.doorStyle.get('name') === this.props.state.doorStyle.get('name')) {
|
|
2528
|
+
if (!isInteractiveMove) {
|
|
2529
|
+
self.setState({
|
|
2530
|
+
isLoading: true
|
|
2531
|
+
});
|
|
2532
|
+
}
|
|
2547
2533
|
if (self.props.downloadFlag) {
|
|
2548
2534
|
self.setState({
|
|
2549
2535
|
waitForRender: 0
|
|
@@ -2559,7 +2545,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2559
2545
|
}
|
|
2560
2546
|
self.renderer.domElement.style.display = 'none';
|
|
2561
2547
|
}
|
|
2562
|
-
if (
|
|
2548
|
+
if (nextProps.state.scene.showfg == true) {
|
|
2563
2549
|
implementBacksplash();
|
|
2564
2550
|
implementWarningBox();
|
|
2565
2551
|
} else {
|
|
@@ -2568,7 +2554,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2568
2554
|
var _this$state = this.state,
|
|
2569
2555
|
toolObj = _this$state.toolObj,
|
|
2570
2556
|
angleObj = _this$state.angleObj;
|
|
2571
|
-
var _updateScene = updateScene(this.planData,
|
|
2557
|
+
var _updateScene = updateScene(this.planData, nextProps.state.scene, this.props.state.scene, changedValues.toJS(), actions, this.context.catalog, nextProps.state.mode, toolObj, angleObj, nextProps.state.draggingSupport),
|
|
2572
2558
|
promise = _updateScene.promise;
|
|
2573
2559
|
self.setState();
|
|
2574
2560
|
promise.then(function (p1Value) {
|
|
@@ -2580,8 +2566,8 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
2580
2566
|
});
|
|
2581
2567
|
self.renderer.domElement.style.display = 'block';
|
|
2582
2568
|
});
|
|
2583
|
-
if (
|
|
2584
|
-
|
|
2569
|
+
if (nextProps.state.getIn(['scene', 'isEndDragging'])) {
|
|
2570
|
+
nextProps.state.setIn(['scene', 'isEndDragging'], false);
|
|
2585
2571
|
}
|
|
2586
2572
|
}
|
|
2587
2573
|
this.renderer.setSize(width, height);
|
|
@@ -2669,4 +2655,13 @@ Scene3DViewer.propTypes = {
|
|
|
2669
2655
|
width: PropTypes.number.isRequired,
|
|
2670
2656
|
height: PropTypes.number.isRequired,
|
|
2671
2657
|
replaceCabinet: PropTypes.func.isRequired
|
|
2658
|
+
};
|
|
2659
|
+
Scene3DViewer.contextTypes = {
|
|
2660
|
+
areaActions: PropTypes.object.isRequired,
|
|
2661
|
+
holesActions: PropTypes.object.isRequired,
|
|
2662
|
+
itemsActions: PropTypes.object.isRequired,
|
|
2663
|
+
linesActions: PropTypes.object.isRequired,
|
|
2664
|
+
sceneActions: PropTypes.object.isRequired,
|
|
2665
|
+
projectActions: PropTypes.object.isRequired,
|
|
2666
|
+
catalog: PropTypes.object
|
|
2672
2667
|
};
|
package/es/constants.js
CHANGED
|
@@ -66,6 +66,7 @@ export var CHANGE_WALL_LENGTH_MEASURE = 'CHANGE_WALL_LENGTH_MEASURE';
|
|
|
66
66
|
export var CHANGE_BASE_CABINET_MEASURE = 'CHANGE_BASE_CABINET_MEASURE';
|
|
67
67
|
export var CHANGE_WALL_CABINET_MEASURE = 'CHANGE_WALL_CABINET_MEASURE';
|
|
68
68
|
export var CHANGE_WINDOW_DOOR_MEASURE = 'CHANGE_WINDOW_DOOR_MEASURE';
|
|
69
|
+
export var CHANGE_MEASUREMENT_UNIT = 'CHANGE_MEASUREMENT_UNIT';
|
|
69
70
|
|
|
70
71
|
//ACTIONS viewer3D
|
|
71
72
|
export var SELECT_TOOL_3D_VIEW = 'SELECT_TOOL_3D_VIEW';
|
|
@@ -650,10 +651,11 @@ export var PROJECT_SETTING_OPTION = {
|
|
|
650
651
|
CHANGE_WALL_LENGTH_MEASURE: CHANGE_WALL_LENGTH_MEASURE,
|
|
651
652
|
CHANGE_BASE_CABINET_MEASURE: CHANGE_BASE_CABINET_MEASURE,
|
|
652
653
|
CHANGE_WALL_CABINET_MEASURE: CHANGE_WALL_CABINET_MEASURE,
|
|
653
|
-
CHANGE_WINDOW_DOOR_MEASURE: CHANGE_WINDOW_DOOR_MEASURE
|
|
654
|
+
CHANGE_WINDOW_DOOR_MEASURE: CHANGE_WINDOW_DOOR_MEASURE,
|
|
655
|
+
CHANGE_MEASUREMENT_UNIT: CHANGE_MEASUREMENT_UNIT
|
|
654
656
|
};
|
|
655
657
|
export var HOLE_NAMES = {
|
|
656
|
-
WINDOW_CLEAR: '
|
|
658
|
+
WINDOW_CLEAR: 'Window',
|
|
657
659
|
WINDOW_CROSS: 'Cross Window',
|
|
658
660
|
WINDOW_DOUBLE_HUNG: 'Double Hung Window',
|
|
659
661
|
WINDOW_VERTICAL: 'window-vertical',
|
|
@@ -739,6 +741,7 @@ export var EXTERNAL_EVENT_UPDATE_ATTRIBUTE = 'EXTERNAL_EVENT_UPDATE_ATTRIBUTE';
|
|
|
739
741
|
export var EXTERNAL_EVENT_UPDATE_PROPERTY = 'EXTERNAL_EVENT_UPDATE_PROPERTY'; // update the element's property (flip_doorhandle, open_doors...) in the property window
|
|
740
742
|
export var EXTERNAL_EVENT_REPLACE_CABINET = 'EXTERNAL_EVENT_REPLACE_CABINET';
|
|
741
743
|
export var EXTERNAL_EVENT_SET_FINISHING = 'EXTERNAL_EVENT_SET_FINISHING'; // set finishing(wallColor, floorStyle, doorHandle, backsplash, counterTop)
|
|
744
|
+
export var EXTERNAL_EVENT_ROTATE_PAN = 'EXTERNAL_EVENT_ROTATE_PAN'; // external event for rotate pan
|
|
742
745
|
|
|
743
746
|
// internal event type
|
|
744
747
|
export var INTERNAL_EVENT_UNSELECT_ALL = 'INTERNAL_EVENT_UNSELECT_ALL';
|
|
@@ -748,9 +751,11 @@ export var INTERNAL_EVENT_DRAW_ELEMENT = 'INTERNAL_EVENT_DRAW_ELEMENT';
|
|
|
748
751
|
export var INTERNAL_EVENT_ROTATE_ELEMENT = 'INTERNAL_EVENT_ROTATE_ELEMENT';
|
|
749
752
|
export var INTERNAL_EVENT_REPLACE_CABINET = 'INTERNAL_EVENT_REPLACE_CABINET';
|
|
750
753
|
export var INTERNAL_EVENT_START_DRAW_WALL = 'INTERNAL_EVENT_START_DRAW_WALL';
|
|
754
|
+
export var INTERNAL_EVENT_TOGGLE_TO_ELEVATION = 'INTERNAL_EVENT_TOGGLE_TO_ELEVATION';
|
|
751
755
|
|
|
752
756
|
// room shape type
|
|
753
757
|
export var ROOM_SHAPE_TYPE = {
|
|
758
|
+
CUSTOM: 'custom',
|
|
754
759
|
RECTANGLE: 'rectangle',
|
|
755
760
|
TWO_WALLS_LEFT_TOP: '2wLeftTop',
|
|
756
761
|
TWO_WALLS_RIGHT_TOP: '2wRightTop',
|