kitchen-simulator 4.0.2-react-18 → 4.0.2
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 +165 -107
- package/es/LiteRenderer.js +161 -129
- 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 +18 -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 +93 -80
- 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 +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 +155 -359
- 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 +4 -2
- 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/ruler-utils/scene3D.js +1 -1
- 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 +34 -0
- package/es/plugins/export.js +7 -0
- package/es/plugins/keyboard.js +110 -0
- package/es/reducers/project-reducer.js +3 -0
- package/es/styles/export.js +5 -0
- package/es/styles/tabs.css +40 -0
- package/es/utils/geometry.js +64 -106
- package/es/utils/helper.js +38 -1
- package/es/utils/isolate-event-handler.js +824 -605
- package/es/utils/molding.js +457 -11
- package/lib/AppContext.js +1 -1
- package/lib/LiteKitchenConfigurator.js +164 -107
- package/lib/LiteRenderer.js +160 -129
- 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 +18 -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 +93 -80
- 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 +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 +152 -356
- 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 +4 -2
- 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/ruler-utils/scene3D.js +1 -1
- 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 +42 -0
- package/lib/plugins/export.js +25 -0
- package/lib/plugins/keyboard.js +117 -0
- package/lib/reducers/project-reducer.js +3 -0
- package/lib/styles/export.js +13 -0
- package/lib/styles/tabs.css +40 -0
- package/lib/utils/geometry.js +64 -106
- package/lib/utils/helper.js +40 -1
- package/lib/utils/isolate-event-handler.js +824 -604
- 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
package/es/class/item.js
CHANGED
|
@@ -9,10 +9,11 @@ import { Group, Hole, Layer } from "./export";
|
|
|
9
9
|
import { GeometryUtils, IDBroker, MoldingUtils, NameGenerator } from "../utils/export";
|
|
10
10
|
import { fromJS, Map } from 'immutable';
|
|
11
11
|
import { INSTALLATION_SUFFIX_TYPE, INTERNAL_EVENT_DRAW_ELEMENT, MODE_DRAGGING_ITEM, MODE_DRAGGING_ITEM_3D, MODE_DRAWING_ITEM, MODE_DRAWING_ITEM_3D, MODE_IDLE, MODE_IDLE_3D, MODE_ROTATING_ITEM, MODE_ROTATING_ITEM_3D, MOLDING_LOCATIONS } from "../constants";
|
|
12
|
-
import { debugUtil } from "../utils/helper";
|
|
12
|
+
import { debugUtil, updatePayloadOfInternalEvent } from "../utils/helper";
|
|
13
13
|
import { isUndefined } from 'util';
|
|
14
14
|
import { hasMoldingLayout } from "../utils/molding";
|
|
15
|
-
import { getInstallationSuffix,
|
|
15
|
+
import { getInstallationSuffix, isEmpty } from "../components/viewer2d/utils";
|
|
16
|
+
import { historyPush } from "../utils/history";
|
|
16
17
|
var allItemRect;
|
|
17
18
|
var allItemSnap;
|
|
18
19
|
var allLines;
|
|
@@ -28,9 +29,11 @@ var Item = /*#__PURE__*/function () {
|
|
|
28
29
|
return _createClass(Item, null, [{
|
|
29
30
|
key: "create",
|
|
30
31
|
value: function create(state, layerID, type, x, y, width, height, rotation, isDuplication) {
|
|
32
|
+
var _item;
|
|
31
33
|
var molding = arguments.length > 9 && arguments[9] !== undefined ? arguments[9] : [];
|
|
32
34
|
var isInitialPos = arguments.length > 10 && arguments[10] !== undefined ? arguments[10] : false;
|
|
33
35
|
var refItem = arguments.length > 11 && arguments[11] !== undefined ? arguments[11] : null;
|
|
36
|
+
var counterTopURI = arguments.length > 12 && arguments[12] !== undefined ? arguments[12] : null;
|
|
34
37
|
var itemID = IDBroker.acquireID();
|
|
35
38
|
var item = state.catalog.factoryElement(type, {
|
|
36
39
|
id: itemID,
|
|
@@ -56,13 +59,20 @@ var Item = /*#__PURE__*/function () {
|
|
|
56
59
|
doorStyle: refItem.doorStyle
|
|
57
60
|
});
|
|
58
61
|
} else {
|
|
59
|
-
var _state$doorStyle;
|
|
62
|
+
var _state$doorStyle, _ref, _temp$doorStyles$cds$, _temp$doorStyles, _temp$cds, _state3;
|
|
60
63
|
var layer = state.getIn(['scene', 'layers', layerID]);
|
|
61
64
|
var temp = layer.doorStyle || ((_state$doorStyle = state.doorStyle) === null || _state$doorStyle === void 0 ? void 0 : _state$doorStyle.toJS());
|
|
62
|
-
var cds =
|
|
65
|
+
var cds = (_ref = (_temp$doorStyles$cds$ = temp === null || temp === void 0 || (_temp$doorStyles = temp.doorStyles) === null || _temp$doorStyles === void 0 || (_temp$doorStyles = _temp$doorStyles.cds) === null || _temp$doorStyles === void 0 ? void 0 : _temp$doorStyles.find(function (elem) {
|
|
66
|
+
var _state;
|
|
67
|
+
return elem.itemID === ((_state = state) === null || _state === void 0 || (_state = _state.catalog) === null || _state === void 0 ? void 0 : _state.getIn(['elements', type, 'itemID']));
|
|
68
|
+
})) !== null && _temp$doorStyles$cds$ !== void 0 ? _temp$doorStyles$cds$ : temp === null || temp === void 0 || (_temp$cds = temp.cds) === null || _temp$cds === void 0 ? void 0 : _temp$cds.find(function (elem) {
|
|
69
|
+
var _state2;
|
|
70
|
+
return elem.itemID === ((_state2 = state) === null || _state2 === void 0 || (_state2 = _state2.catalog) === null || _state2 === void 0 ? void 0 : _state2.getIn(['elements', type, 'itemID']));
|
|
71
|
+
})) !== null && _ref !== void 0 ? _ref : (_state3 = state) === null || _state3 === void 0 || (_state3 = _state3.catalog) === null || _state3 === void 0 ? void 0 : _state3.getIn(['elements', type, 'cds']);
|
|
63
72
|
if (cds) {
|
|
64
73
|
var updatedDoorStyles = _objectSpread(_objectSpread({}, temp.doorStyles), {}, {
|
|
65
|
-
cds: [cds]
|
|
74
|
+
cds: [cds],
|
|
75
|
+
cabinet_door_style_id: cds.cabinet_door_style_id
|
|
66
76
|
});
|
|
67
77
|
item = item.merge({
|
|
68
78
|
doorStyle: fromJS(_objectSpread(_objectSpread({}, temp), {}, {
|
|
@@ -159,6 +169,9 @@ var Item = /*#__PURE__*/function () {
|
|
|
159
169
|
}
|
|
160
170
|
};
|
|
161
171
|
item.category === 'cabinet' && setSizeOfItemByDoorStyle();
|
|
172
|
+
if (counterTopURI || (_item = item) !== null && _item !== void 0 && _item.counterTop) {
|
|
173
|
+
item.counterTop.uri = counterTopURI;
|
|
174
|
+
}
|
|
162
175
|
item = this.updateDoorHandle(item, state.getIn(['scene', 'layers', layerID]));
|
|
163
176
|
state = state.setIn(['scene', 'layers', layerID, 'items', itemID], item);
|
|
164
177
|
if (item.type.includes('Light')) {
|
|
@@ -330,17 +343,17 @@ var Item = /*#__PURE__*/function () {
|
|
|
330
343
|
if (isRect) {
|
|
331
344
|
var _this$create2 = this.create(state, layerID, sceneComponentType, x - width * Math.cos(rotRad), y - width * Math.sin(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding, false, myObject),
|
|
332
345
|
_stateI = _this$create2.updatedState,
|
|
333
|
-
|
|
334
|
-
duplicatedElement =
|
|
335
|
-
if (
|
|
346
|
+
_item2 = _this$create2.item;
|
|
347
|
+
duplicatedElement = _item2;
|
|
348
|
+
if (_item2 === null) {
|
|
336
349
|
alert('There are no Door Colors in this cabinet.');
|
|
337
350
|
state = state.merge({
|
|
338
351
|
mode: MODE_IDLE,
|
|
339
352
|
drawingSupport: new Map()
|
|
340
353
|
});
|
|
341
354
|
} else {
|
|
342
|
-
state = Item.select(_stateI, layerID,
|
|
343
|
-
state = state.setIn(['drawingSupport', 'currentID'],
|
|
355
|
+
state = Item.select(_stateI, layerID, _item2.id).updatedState;
|
|
356
|
+
state = state.setIn(['drawingSupport', 'currentID'], _item2.id);
|
|
344
357
|
}
|
|
345
358
|
} else {
|
|
346
359
|
var _val2 = {
|
|
@@ -357,17 +370,17 @@ var Item = /*#__PURE__*/function () {
|
|
|
357
370
|
if (isRectDown) {
|
|
358
371
|
var _this$create3 = this.create(state, layerID, sceneComponentType, x - depth * Math.sin(rotRad), y - depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding, false, myObject),
|
|
359
372
|
_stateI2 = _this$create3.updatedState,
|
|
360
|
-
|
|
361
|
-
duplicatedElement =
|
|
362
|
-
if (
|
|
373
|
+
_item3 = _this$create3.item;
|
|
374
|
+
duplicatedElement = _item3;
|
|
375
|
+
if (_item3 === null) {
|
|
363
376
|
alert('There are no Door Colors in this cabinet.');
|
|
364
377
|
state = state.merge({
|
|
365
378
|
mode: MODE_IDLE,
|
|
366
379
|
drawingSupport: new Map()
|
|
367
380
|
});
|
|
368
381
|
} else {
|
|
369
|
-
state = Item.select(_stateI2, layerID,
|
|
370
|
-
state = state.setIn(['drawingSupport', 'currentID'],
|
|
382
|
+
state = Item.select(_stateI2, layerID, _item3.id).updatedState;
|
|
383
|
+
state = state.setIn(['drawingSupport', 'currentID'], _item3.id);
|
|
371
384
|
}
|
|
372
385
|
} else {
|
|
373
386
|
var _val3 = {
|
|
@@ -384,17 +397,17 @@ var Item = /*#__PURE__*/function () {
|
|
|
384
397
|
if (isRectUp) {
|
|
385
398
|
var _this$create4 = this.create(state, layerID, sceneComponentType, x + depth * Math.sin(rotRad), y + depth * Math.cos(rotRad), 200, 100, rotRad * 180 / Math.PI, true, myObject.molding, false, myObject),
|
|
386
399
|
_stateI3 = _this$create4.updatedState,
|
|
387
|
-
|
|
388
|
-
duplicatedElement =
|
|
389
|
-
if (
|
|
400
|
+
_item4 = _this$create4.item;
|
|
401
|
+
duplicatedElement = _item4;
|
|
402
|
+
if (_item4 === null) {
|
|
390
403
|
alert('There are no Door Colors in this cabinet.');
|
|
391
404
|
state = state.merge({
|
|
392
405
|
mode: MODE_IDLE,
|
|
393
406
|
drawingSupport: new Map()
|
|
394
407
|
});
|
|
395
408
|
} else {
|
|
396
|
-
state = Item.select(_stateI3, layerID,
|
|
397
|
-
state = state.setIn(['drawingSupport', 'currentID'],
|
|
409
|
+
state = Item.select(_stateI3, layerID, _item4.id).updatedState;
|
|
410
|
+
state = state.setIn(['drawingSupport', 'currentID'], _item4.id);
|
|
398
411
|
}
|
|
399
412
|
} else {
|
|
400
413
|
console.log('there is no space');
|
|
@@ -464,8 +477,9 @@ var Item = /*#__PURE__*/function () {
|
|
|
464
477
|
break;
|
|
465
478
|
}
|
|
466
479
|
if (onInternalEvent && duplicatedElement) {
|
|
467
|
-
var
|
|
468
|
-
|
|
480
|
+
var _state$get;
|
|
481
|
+
var catalog = (_state$get = state.get('catalog')) === null || _state$get === void 0 ? void 0 : _state$get.toJS();
|
|
482
|
+
var jsElement = updatePayloadOfInternalEvent(duplicatedElement, layer, catalog);
|
|
469
483
|
onInternalEvent({
|
|
470
484
|
type: INTERNAL_EVENT_DRAW_ELEMENT,
|
|
471
485
|
value: jsElement
|
|
@@ -530,8 +544,14 @@ var Item = /*#__PURE__*/function () {
|
|
|
530
544
|
}, {
|
|
531
545
|
key: "replaceItem",
|
|
532
546
|
value: function replaceItem(state, selectedPos, currentObject, selectedObject) {
|
|
547
|
+
var _currentObject$counte;
|
|
548
|
+
var counterTopURI = '';
|
|
549
|
+
if (!isEmpty(currentObject === null || currentObject === void 0 || (_currentObject$counte = currentObject.counterTop) === null || _currentObject$counte === void 0 ? void 0 : _currentObject$counte.uri)) {
|
|
550
|
+
var _currentObject$counte2;
|
|
551
|
+
counterTopURI = currentObject === null || currentObject === void 0 || (_currentObject$counte2 = currentObject.counterTop) === null || _currentObject$counte2 === void 0 ? void 0 : _currentObject$counte2.uri;
|
|
552
|
+
} else if (!isEmpty(state.getIn(['scene', 'layers', 'layer-1', 'counterTop']))) counterTopURI = state.getIn(['scene', 'layers', 'layer-1', 'counterTop']).uri;else counterTopURI = 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg';
|
|
533
553
|
state = this.remove(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
|
|
534
|
-
state = this.create(state, state.scene.selectedLayer, selectedObject.name, selectedPos.x, selectedPos.y, selectedObject.info.width, selectedObject.info.height, selectedPos.rotation, false).updatedState;
|
|
554
|
+
state = this.create(state, state.scene.selectedLayer, selectedObject.name, selectedPos.x, selectedPos.y, selectedObject.info.width, selectedObject.info.height, selectedPos.rotation, false, [], false, null, counterTopURI).updatedState;
|
|
535
555
|
// state = this.select(state, state.scene.selectedLayer, selectedPos.selectedItemId).updatedState;
|
|
536
556
|
return {
|
|
537
557
|
updatedState: state
|
|
@@ -649,8 +669,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
649
669
|
}, {
|
|
650
670
|
key: "updateDraggingItemChanged",
|
|
651
671
|
value: function updateDraggingItemChanged(state, x, y, layerID, itemID) {
|
|
652
|
-
var
|
|
653
|
-
scene =
|
|
672
|
+
var _state4 = state,
|
|
673
|
+
scene = _state4.scene;
|
|
654
674
|
// let originalX = draggingSupport.get('originalX');
|
|
655
675
|
// let originalY = draggingSupport.get('originalY');
|
|
656
676
|
|
|
@@ -742,9 +762,9 @@ var Item = /*#__PURE__*/function () {
|
|
|
742
762
|
}, {
|
|
743
763
|
key: "updateDraggingItem",
|
|
744
764
|
value: function updateDraggingItem(state, x, y) {
|
|
745
|
-
var
|
|
746
|
-
draggingSupport =
|
|
747
|
-
scene =
|
|
765
|
+
var _state5 = state,
|
|
766
|
+
draggingSupport = _state5.draggingSupport,
|
|
767
|
+
scene = _state5.scene;
|
|
748
768
|
var layerID = draggingSupport.get('layerID');
|
|
749
769
|
var itemID = draggingSupport.get('itemID');
|
|
750
770
|
var startPointX = draggingSupport.get('startPointX');
|
|
@@ -776,9 +796,9 @@ var Item = /*#__PURE__*/function () {
|
|
|
776
796
|
}, {
|
|
777
797
|
key: "updateDraggingItem3DX",
|
|
778
798
|
value: function updateDraggingItem3DX(state, x) {
|
|
779
|
-
var
|
|
780
|
-
draggingSupport =
|
|
781
|
-
scene =
|
|
799
|
+
var _state6 = state,
|
|
800
|
+
draggingSupport = _state6.draggingSupport,
|
|
801
|
+
scene = _state6.scene;
|
|
782
802
|
var layerID = draggingSupport.get('layerID');
|
|
783
803
|
var itemID = draggingSupport.get('itemID');
|
|
784
804
|
var startPointX = draggingSupport.get('startPointX');
|
|
@@ -798,9 +818,9 @@ var Item = /*#__PURE__*/function () {
|
|
|
798
818
|
}, {
|
|
799
819
|
key: "updateDraggingItem3DY",
|
|
800
820
|
value: function updateDraggingItem3DY(state, y) {
|
|
801
|
-
var
|
|
802
|
-
draggingSupport =
|
|
803
|
-
scene =
|
|
821
|
+
var _state7 = state,
|
|
822
|
+
draggingSupport = _state7.draggingSupport,
|
|
823
|
+
scene = _state7.scene;
|
|
804
824
|
var layerID = draggingSupport.get('layerID');
|
|
805
825
|
var itemID = draggingSupport.get('itemID');
|
|
806
826
|
var startPointY = draggingSupport.get('startPointY');
|
|
@@ -881,9 +901,9 @@ var Item = /*#__PURE__*/function () {
|
|
|
881
901
|
}, {
|
|
882
902
|
key: "updateRotatingItem",
|
|
883
903
|
value: function updateRotatingItem(state, x, y) {
|
|
884
|
-
var
|
|
885
|
-
rotatingSupport =
|
|
886
|
-
scene =
|
|
904
|
+
var _state8 = state,
|
|
905
|
+
rotatingSupport = _state8.rotatingSupport,
|
|
906
|
+
scene = _state8.scene;
|
|
887
907
|
var layerID = rotatingSupport.get('layerID');
|
|
888
908
|
var itemID = rotatingSupport.get('itemID');
|
|
889
909
|
var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
|
|
@@ -966,9 +986,9 @@ var Item = /*#__PURE__*/function () {
|
|
|
966
986
|
}, {
|
|
967
987
|
key: "replaceSubmodule",
|
|
968
988
|
value: function replaceSubmodule(state, url) {
|
|
969
|
-
var
|
|
970
|
-
replacingSupport =
|
|
971
|
-
scene =
|
|
989
|
+
var _state9 = state,
|
|
990
|
+
replacingSupport = _state9.replacingSupport,
|
|
991
|
+
scene = _state9.scene;
|
|
972
992
|
url = 'catalog/texture.png';
|
|
973
993
|
var urlData = url.split('/');
|
|
974
994
|
var newURL = '';
|
|
@@ -1069,9 +1089,9 @@ var Item = /*#__PURE__*/function () {
|
|
|
1069
1089
|
}, {
|
|
1070
1090
|
key: "animateObject",
|
|
1071
1091
|
value: function animateObject(state, value) {
|
|
1072
|
-
var
|
|
1073
|
-
replacingSupport =
|
|
1074
|
-
scene =
|
|
1092
|
+
var _state0 = state,
|
|
1093
|
+
replacingSupport = _state0.replacingSupport,
|
|
1094
|
+
scene = _state0.scene;
|
|
1075
1095
|
var layerID = replacingSupport.get('layerID');
|
|
1076
1096
|
var itemID = replacingSupport.get('itemID');
|
|
1077
1097
|
var item = state.getIn(['scene', 'layers', layerID, 'items', itemID]);
|
|
@@ -1108,8 +1128,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1108
1128
|
state = state.merge({
|
|
1109
1129
|
doorStyle: doorStyle
|
|
1110
1130
|
});
|
|
1111
|
-
var
|
|
1112
|
-
scene =
|
|
1131
|
+
var _state1 = state,
|
|
1132
|
+
scene = _state1.scene;
|
|
1113
1133
|
var layerID = scene.get('selectedLayer');
|
|
1114
1134
|
var layers = scene.layers.get(layerID);
|
|
1115
1135
|
var items = layers.items;
|
|
@@ -1306,8 +1326,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1306
1326
|
}, {
|
|
1307
1327
|
key: "setCounterTop",
|
|
1308
1328
|
value: function setCounterTop(state, counterTop) {
|
|
1309
|
-
var
|
|
1310
|
-
scene =
|
|
1329
|
+
var _state10 = state,
|
|
1330
|
+
scene = _state10.scene;
|
|
1311
1331
|
var layerID = scene.get('selectedLayer');
|
|
1312
1332
|
var layers = scene.layers.get(layerID);
|
|
1313
1333
|
layers = layers.mergeIn(['counterTop'], counterTop);
|
|
@@ -1351,8 +1371,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1351
1371
|
}, {
|
|
1352
1372
|
key: "setDoorHandle",
|
|
1353
1373
|
value: function setDoorHandle(state, doorHandle) {
|
|
1354
|
-
var
|
|
1355
|
-
scene =
|
|
1374
|
+
var _state11 = state,
|
|
1375
|
+
scene = _state11.scene;
|
|
1356
1376
|
var layerID = scene.get('selectedLayer');
|
|
1357
1377
|
var layer = scene.layers.get(layerID);
|
|
1358
1378
|
layer = layer.mergeIn(['doorHandle'], doorHandle);
|
|
@@ -1376,8 +1396,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1376
1396
|
}, {
|
|
1377
1397
|
key: "setHandleMaterial",
|
|
1378
1398
|
value: function setHandleMaterial(state, material) {
|
|
1379
|
-
var
|
|
1380
|
-
scene =
|
|
1399
|
+
var _state12 = state,
|
|
1400
|
+
scene = _state12.scene;
|
|
1381
1401
|
var layerID = scene.get('selectedLayer');
|
|
1382
1402
|
var layers = scene.layers.get(layerID);
|
|
1383
1403
|
var items = layers.items;
|
|
@@ -1402,8 +1422,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1402
1422
|
}, {
|
|
1403
1423
|
key: "setWallColor",
|
|
1404
1424
|
value: function setWallColor(state, wallColor) {
|
|
1405
|
-
var
|
|
1406
|
-
scene =
|
|
1425
|
+
var _state13 = state,
|
|
1426
|
+
scene = _state13.scene;
|
|
1407
1427
|
var layerID = scene.get('selectedLayer');
|
|
1408
1428
|
var layer = scene.layers.get(layerID);
|
|
1409
1429
|
layer = layer.merge({
|
|
@@ -1429,8 +1449,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1429
1449
|
}, {
|
|
1430
1450
|
key: "setBacksplash",
|
|
1431
1451
|
value: function setBacksplash(state, backsplash) {
|
|
1432
|
-
var
|
|
1433
|
-
scene =
|
|
1452
|
+
var _state14 = state,
|
|
1453
|
+
scene = _state14.scene;
|
|
1434
1454
|
var layerID = scene.get('selectedLayer');
|
|
1435
1455
|
var layer = scene.layers.get(layerID);
|
|
1436
1456
|
var dataJSON = layer.toJS();
|
|
@@ -1458,8 +1478,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1458
1478
|
}, {
|
|
1459
1479
|
key: "setMolding",
|
|
1460
1480
|
value: function setMolding(state, molding, isAll) {
|
|
1461
|
-
var
|
|
1462
|
-
scene =
|
|
1481
|
+
var _state15 = state,
|
|
1482
|
+
scene = _state15.scene;
|
|
1463
1483
|
var layerID = scene.get('selectedLayer');
|
|
1464
1484
|
var layer = scene.layers.get(layerID);
|
|
1465
1485
|
if (isAll) {
|
|
@@ -1541,6 +1561,9 @@ var Item = /*#__PURE__*/function () {
|
|
|
1541
1561
|
});
|
|
1542
1562
|
}
|
|
1543
1563
|
}
|
|
1564
|
+
state = state.merge({
|
|
1565
|
+
sceneHistory: historyPush(state.sceneHistory, state.scene)
|
|
1566
|
+
});
|
|
1544
1567
|
return {
|
|
1545
1568
|
updatedState: state
|
|
1546
1569
|
};
|
|
@@ -1548,8 +1571,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1548
1571
|
}, {
|
|
1549
1572
|
key: "updateMolding",
|
|
1550
1573
|
value: function updateMolding(state) {
|
|
1551
|
-
var
|
|
1552
|
-
scene =
|
|
1574
|
+
var _state16 = state,
|
|
1575
|
+
scene = _state16.scene;
|
|
1553
1576
|
var layerID = scene.get('selectedLayer');
|
|
1554
1577
|
var layer = scene.layers.get(layerID);
|
|
1555
1578
|
var selectedItem = layer.getIn(['items', layer.selected.toJS().items[0]]);
|
|
@@ -1663,6 +1686,9 @@ var Item = /*#__PURE__*/function () {
|
|
|
1663
1686
|
updateSelectItemMolding();
|
|
1664
1687
|
}
|
|
1665
1688
|
}
|
|
1689
|
+
state = state.merge({
|
|
1690
|
+
sceneHistory: historyPush(state.sceneHistory, state.scene)
|
|
1691
|
+
});
|
|
1666
1692
|
return {
|
|
1667
1693
|
updatedState: state
|
|
1668
1694
|
};
|
|
@@ -1670,8 +1696,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1670
1696
|
}, {
|
|
1671
1697
|
key: "setBacksplashVisible",
|
|
1672
1698
|
value: function setBacksplashVisible(state, itemID, backsplashVisible) {
|
|
1673
|
-
var
|
|
1674
|
-
scene =
|
|
1699
|
+
var _state17 = state,
|
|
1700
|
+
scene = _state17.scene;
|
|
1675
1701
|
var layerID = scene.get('selectedLayer');
|
|
1676
1702
|
var layer = scene.layers.get(layerID);
|
|
1677
1703
|
layer = layer.mergeIn(['items', itemID, 'backsplashVisible'], backsplashVisible);
|
|
@@ -1691,8 +1717,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1691
1717
|
}, {
|
|
1692
1718
|
key: "setApplianceMaterial",
|
|
1693
1719
|
value: function setApplianceMaterial(state, material) {
|
|
1694
|
-
var
|
|
1695
|
-
scene =
|
|
1720
|
+
var _state18 = state,
|
|
1721
|
+
scene = _state18.scene;
|
|
1696
1722
|
var layerID = scene.get('selectedLayer');
|
|
1697
1723
|
var layers = scene.layers.get(layerID);
|
|
1698
1724
|
var items = layers.items;
|
|
@@ -1716,8 +1742,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1716
1742
|
}, {
|
|
1717
1743
|
key: "setModelling",
|
|
1718
1744
|
value: function setModelling(state, molding) {
|
|
1719
|
-
var
|
|
1720
|
-
scene =
|
|
1745
|
+
var _state19 = state,
|
|
1746
|
+
scene = _state19.scene;
|
|
1721
1747
|
var layerID = scene.get('selectedLayer');
|
|
1722
1748
|
var layers = scene.layers.get(layerID);
|
|
1723
1749
|
var items = layers.items;
|
|
@@ -1827,8 +1853,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1827
1853
|
}, {
|
|
1828
1854
|
key: "toggleLoadingCabinet",
|
|
1829
1855
|
value: function toggleLoadingCabinet(state) {
|
|
1830
|
-
var
|
|
1831
|
-
scene =
|
|
1856
|
+
var _state20 = state,
|
|
1857
|
+
scene = _state20.scene;
|
|
1832
1858
|
console.log('scene.isLoadingCabinet: ', !scene.isLoadingCabinet);
|
|
1833
1859
|
// scene = scene.set('isLoadingCabinet', !scene.isLoadingCabinet);
|
|
1834
1860
|
// state = state.set('scene', scene);
|
|
@@ -1840,8 +1866,8 @@ var Item = /*#__PURE__*/function () {
|
|
|
1840
1866
|
}, {
|
|
1841
1867
|
key: "endLoading",
|
|
1842
1868
|
value: function endLoading(state) {
|
|
1843
|
-
var
|
|
1844
|
-
scene =
|
|
1869
|
+
var _state21 = state,
|
|
1870
|
+
scene = _state21.scene;
|
|
1845
1871
|
state = state.setIn(['scene', 'loadFlag'], true);
|
|
1846
1872
|
return {
|
|
1847
1873
|
updatedState: state
|
package/es/class/line.js
CHANGED
|
@@ -6,8 +6,7 @@ import { Group, Hole, Layer, Vertex } from "./export";
|
|
|
6
6
|
import { GeometryUtils, history, IDBroker, NameGenerator, SnapSceneUtils, SnapUtils } from "../utils/export";
|
|
7
7
|
import * as Three from 'three';
|
|
8
8
|
import { END_DRAGGING_LINE, END_DRAGGING_VERTEX, END_DRAWING_LINE, EPSILON, INTERNAL_EVENT_START_DRAW_WALL, MIN_ANGLE_DISALLOW_DRAW_WALL, MODE_DRAGGING_LINE, MODE_DRAWING_LINE, MODE_IDLE, MODE_WAITING_DRAWING_LINE, UNIT_ANGLE } from "../constants";
|
|
9
|
-
import { isEmpty } from "../utils/helper";
|
|
10
|
-
import { convert } from "../utils/convert-units-lite";
|
|
9
|
+
import { isEmpty, updatePayloadOfInternalEvent } from "../utils/helper";
|
|
11
10
|
var timeGlobal = 0;
|
|
12
11
|
var TimeRecorder = /*#__PURE__*/function () {
|
|
13
12
|
function TimeRecorder(name) {
|
|
@@ -428,6 +427,7 @@ var Line = /*#__PURE__*/function () {
|
|
|
428
427
|
}, {
|
|
429
428
|
key: "beginDrawingLine",
|
|
430
429
|
value: function beginDrawingLine(state, layerID, x, y, onInternalEvent) {
|
|
430
|
+
var _state$get;
|
|
431
431
|
// if end drawing by created area
|
|
432
432
|
if (state.mode == MODE_IDLE) {
|
|
433
433
|
return {
|
|
@@ -481,12 +481,8 @@ var Line = /*#__PURE__*/function () {
|
|
|
481
481
|
drawingSupport: drawingSupport
|
|
482
482
|
});
|
|
483
483
|
var layer = state.getIn(['scene', 'layers', layerID]);
|
|
484
|
-
var
|
|
485
|
-
var
|
|
486
|
-
var v_b = layer.vertices.get(line.vertices.get(1));
|
|
487
|
-
var distance = GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
|
|
488
|
-
var _length = convert(distance).from('cm').to('in');
|
|
489
|
-
payload.length = _length;
|
|
484
|
+
var catalog = (_state$get = state.get('catalog')) === null || _state$get === void 0 ? void 0 : _state$get.toJS();
|
|
485
|
+
var payload = updatePayloadOfInternalEvent(line, layer, catalog);
|
|
490
486
|
if (onInternalEvent) onInternalEvent({
|
|
491
487
|
type: INTERNAL_EVENT_START_DRAW_WALL,
|
|
492
488
|
value: payload
|
package/es/class/project.js
CHANGED
|
@@ -34,7 +34,8 @@ var Project = /*#__PURE__*/function () {
|
|
|
34
34
|
}, {
|
|
35
35
|
key: "newProject",
|
|
36
36
|
value: function newProject(state) {
|
|
37
|
-
var
|
|
37
|
+
var _state$toJS$doorStyle, _state;
|
|
38
|
+
var doorStyle = (_state$toJS$doorStyle = (_state = state) === null || _state === void 0 || (_state = _state.toJS()) === null || _state === void 0 ? void 0 : _state.doorStyle) !== null && _state$toJS$doorStyle !== void 0 ? _state$toJS$doorStyle : null;
|
|
38
39
|
// let counterTop = state.getIn(['scene', 'layers', layerID, 'counterTop']);
|
|
39
40
|
// let floorStyle = state.getIn(['scene', 'layers', layerID, 'floorStyle']);
|
|
40
41
|
var _viewer2D = state.viewer2D;
|
|
@@ -74,9 +75,9 @@ var Project = /*#__PURE__*/function () {
|
|
|
74
75
|
a: 0.99,
|
|
75
76
|
d: 0.99
|
|
76
77
|
});
|
|
77
|
-
var
|
|
78
|
-
oldScene =
|
|
79
|
-
oldSceneHistory =
|
|
78
|
+
var _state2 = state,
|
|
79
|
+
oldScene = _state2.scene,
|
|
80
|
+
oldSceneHistory = _state2.sceneHistory;
|
|
80
81
|
var json_items = sceneJSON.layers[sceneJSON.selectedLayer].items;
|
|
81
82
|
var elements = state.catalog.get('elements').toArray();
|
|
82
83
|
var _loop = function _loop(x) {
|
|
@@ -829,89 +830,101 @@ var Project = /*#__PURE__*/function () {
|
|
|
829
830
|
key: "createRoomWithShape",
|
|
830
831
|
value: function createRoomWithShape(state, roomShapeType, width, height, doorStyle) {
|
|
831
832
|
var catalog = state.catalog;
|
|
833
|
+
// keep measurement unit, sceneHistory
|
|
834
|
+
var curLayerID = state.scene.selectedLayer;
|
|
835
|
+
var layerUnit = state.getIn(['scene', 'layers', curLayerID, 'unit']);
|
|
836
|
+
var ceilHeight = state.getIn(['scene', 'layers', curLayerID, 'ceilHeight']);
|
|
837
|
+
var sceneHistory = state.getIn(['sceneHistory']);
|
|
832
838
|
state = this.newProject(state).updatedState;
|
|
833
839
|
state = state.merge({
|
|
834
840
|
catalog: catalog
|
|
835
841
|
});
|
|
836
|
-
var _viewer2D = state.viewer2D;
|
|
837
|
-
var viewer = _viewer2D.toJS();
|
|
838
|
-
width = convert(width).from('in').to('cm');
|
|
839
|
-
height = convert(height).from('in').to('cm');
|
|
840
|
-
var layerID = state.scene.selectedLayer;
|
|
841
842
|
state = Item.setInitialDoorStyle(state, doorStyle).updatedState;
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
843
|
+
var layerID = state.scene.selectedLayer;
|
|
844
|
+
if (roomShapeType !== constants.ROOM_SHAPE_TYPE.CUSTOM && !isEmpty(width) && !isEmpty(height) && width !== 0 && height !== 0) {
|
|
845
|
+
var _viewer2D = state.viewer2D;
|
|
846
|
+
var viewer = _viewer2D.toJS();
|
|
847
|
+
if (isEmpty(viewer)) return {
|
|
848
|
+
updatedState: state
|
|
849
|
+
};
|
|
850
|
+
width = convert(width).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
|
|
851
|
+
height = convert(height).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
|
|
852
|
+
var halfWidth = width / 2;
|
|
853
|
+
var halfHeight = height / 2;
|
|
854
|
+
var viewerWidth = viewer.SVGWidth;
|
|
855
|
+
var viewerHeight = viewer.SVGHeight;
|
|
856
|
+
var centerPos = {
|
|
857
|
+
x: viewerWidth / 2,
|
|
858
|
+
y: viewerHeight / 2
|
|
859
|
+
};
|
|
860
|
+
var vtLB = {
|
|
861
|
+
x: centerPos.x - halfWidth,
|
|
862
|
+
y: centerPos.y - halfHeight
|
|
863
|
+
};
|
|
864
|
+
var vtRB = {
|
|
865
|
+
x: centerPos.x + halfWidth,
|
|
866
|
+
y: centerPos.y - halfHeight
|
|
867
|
+
};
|
|
868
|
+
var vtRT = {
|
|
869
|
+
x: centerPos.x + halfWidth,
|
|
870
|
+
y: centerPos.y + halfHeight
|
|
871
|
+
};
|
|
872
|
+
var vtLT = {
|
|
873
|
+
x: centerPos.x - halfWidth,
|
|
874
|
+
y: centerPos.y + halfHeight
|
|
875
|
+
};
|
|
876
|
+
var vertices = [];
|
|
877
|
+
switch (roomShapeType) {
|
|
878
|
+
case 'rectangle':
|
|
879
|
+
vertices = [vtLB, vtLT, vtRT, vtRB];
|
|
880
|
+
break;
|
|
881
|
+
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_BOTTOM:
|
|
882
|
+
vertices = [vtLB, vtRB, vtRT];
|
|
883
|
+
break;
|
|
884
|
+
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_TOP:
|
|
885
|
+
vertices = [vtRB, vtRT, vtLT];
|
|
886
|
+
break;
|
|
887
|
+
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_TOP:
|
|
888
|
+
vertices = [vtRT, vtLT, vtLB];
|
|
889
|
+
break;
|
|
890
|
+
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_BOTTOM:
|
|
891
|
+
vertices = [vtLT, vtLB, vtRB];
|
|
892
|
+
break;
|
|
893
|
+
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_LEFT_TOP_RIGHT:
|
|
894
|
+
vertices = [vtRB, vtRT, vtLT, vtLB];
|
|
895
|
+
break;
|
|
896
|
+
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_TOP_RIGHT_BOTTOM:
|
|
897
|
+
vertices = [vtLB, vtRB, vtRT, vtLT];
|
|
898
|
+
break;
|
|
899
|
+
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_RIGHT_BOTTOM_LEFT:
|
|
900
|
+
vertices = [vtLT, vtLB, vtRB, vtRT];
|
|
901
|
+
break;
|
|
902
|
+
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_BOTTOM_LEFT_TOP:
|
|
903
|
+
vertices = [vtRT, vtLT, vtLB, vtRB];
|
|
904
|
+
break;
|
|
905
|
+
}
|
|
906
|
+
for (var i = 0; i < vertices.length - 1; i++) {
|
|
907
|
+
state = Line.create(state, layerID, 'wall', vertices[i].x, vertices[i].y, vertices[i + 1].x, vertices[i + 1].y).updatedState;
|
|
908
|
+
}
|
|
909
|
+
if (roomShapeType === constants.ROOM_SHAPE_TYPE.RECTANGLE) {
|
|
910
|
+
state = Line.create(state, layerID, 'wall', vertices[vertices.length - 1].x, vertices[vertices.length - 1].y, vertices[0].x, vertices[0].y).updatedState;
|
|
911
|
+
}
|
|
912
|
+
var layer = state.getIn(['scene', 'layers', layerID]);
|
|
913
|
+
var lines = layer.getIn(['lines']).toJS();
|
|
914
|
+
var drawingInfo = {};
|
|
915
|
+
var lineKey = Object.keys(lines);
|
|
916
|
+
for (var _i = 0; _i < lineKey.length; _i++) {
|
|
917
|
+
if (!isEmpty(lineKey)) {
|
|
918
|
+
drawingInfo.drawingLine = layer.getIn(['lines', lineKey[_i]]);
|
|
919
|
+
}
|
|
920
|
+
state = Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
|
|
912
921
|
}
|
|
913
|
-
state = Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
|
|
914
922
|
}
|
|
923
|
+
|
|
924
|
+
// copy keeped measurement unit, sceneHistory
|
|
925
|
+
state = state.setIn(['scene', 'layers', layerID, 'unit'], layerUnit);
|
|
926
|
+
state = state.setIn(['scene', 'layers', layerID, 'ceilHeight'], ceilHeight);
|
|
927
|
+
state = state.setIn(['sceneHistory'], sceneHistory);
|
|
915
928
|
state = centering2D(state);
|
|
916
929
|
return {
|
|
917
930
|
updatedState: state
|