kitchen-simulator 3.1.15 → 4.0.0-alpha.12
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 +204 -21
- package/es/LiteRenderer.js +277 -12
- package/es/actions/items-actions.js +6 -10
- package/es/actions/lines-actions.js +1 -3
- package/es/actions/project-actions.js +5 -15
- package/es/assets/Window.hdr +2100 -0
- package/es/assets/gltf/door_sliding.bin +0 -0
- package/es/assets/img/1.jpg +0 -0
- package/es/catalog/areas/area/planner-element.js +5 -10
- package/es/catalog/catalog.js +4 -1
- package/es/catalog/factories/area-factory-3d.js +17 -18
- package/es/catalog/factories/wall-factory-3d.js +2 -2
- package/es/catalog/factories/wall-factory.js +8 -8
- package/es/catalog/lines/wall/planner-element.js +9 -18
- package/es/catalog/utils/exporter.js +3 -6
- package/es/catalog/utils/item-loader.js +197 -202
- package/es/catalog/utils/mtl-loader.js +2 -2
- package/es/catalog/utils/obj-loader.js +2 -2
- package/es/class/item.js +127 -107
- package/es/class/line.js +2 -14
- package/es/class/project.js +44 -150
- package/es/components/content.js +6 -19
- package/es/components/viewer2d/grids/grid-streak.js +1 -1
- package/es/components/viewer2d/item.js +51 -84
- package/es/components/viewer2d/line.js +243 -315
- package/es/components/viewer2d/ruler.js +36 -16
- package/es/components/viewer2d/rulerDist.js +75 -44
- package/es/components/viewer2d/utils.js +0 -6
- package/es/components/viewer2d/viewer2d.js +205 -301
- package/es/components/viewer3d/front3D.js +2 -3
- package/es/components/viewer3d/libs/mtl-loader.js +2 -2
- package/es/components/viewer3d/libs/obj-loader.js +2 -2
- package/es/components/viewer3d/libs/orbit-controls.js +4 -3
- package/es/components/viewer3d/libs/pointer-lock-controls.js +7 -6
- package/es/components/viewer3d/viewer3d.js +80 -127
- package/es/constants.js +3 -110
- package/es/devLiteRenderer.js +38 -597
- package/es/index.js +86 -16
- package/es/models.js +5 -8
- package/es/plugins/SVGLoader.js +5 -7
- package/es/plugins/keyboard.js +6 -15
- package/es/reducers/items-reducer.js +5 -5
- package/es/reducers/lines-reducer.js +1 -1
- package/es/reducers/project-reducer.js +3 -5
- package/es/shared-style.js +4 -4
- package/es/utils/geometry.js +0 -161
- package/es/utils/get-edges-of-subgraphs.js +1 -1
- package/es/utils/graph-cycles.js +1 -1
- package/es/utils/graph.js +1 -1
- package/es/utils/helper.js +2 -67
- package/es/utils/isolate-event-handler.js +124 -1367
- package/es/utils/molding.js +2 -238
- package/lib/LiteKitchenConfigurator.js +205 -22
- package/lib/LiteRenderer.js +278 -13
- package/lib/actions/items-actions.js +6 -10
- package/lib/actions/lines-actions.js +1 -3
- package/lib/actions/project-actions.js +4 -15
- package/lib/assets/Window.hdr +2100 -0
- package/lib/assets/gltf/door_sliding.bin +0 -0
- package/lib/assets/img/1.jpg +0 -0
- package/lib/catalog/areas/area/planner-element.js +5 -11
- package/lib/catalog/catalog.js +4 -1
- package/lib/catalog/factories/area-factory-3d.js +14 -15
- package/lib/catalog/factories/wall-factory-3d.js +2 -2
- package/lib/catalog/factories/wall-factory.js +8 -8
- package/lib/catalog/lines/wall/planner-element.js +9 -19
- package/lib/catalog/utils/exporter.js +3 -6
- package/lib/catalog/utils/item-loader.js +194 -199
- package/lib/catalog/utils/mtl-loader.js +2 -9
- package/lib/catalog/utils/obj-loader.js +2 -10
- package/lib/class/item.js +125 -105
- package/lib/class/line.js +1 -13
- package/lib/class/project.js +43 -149
- package/lib/components/content.js +6 -19
- package/lib/components/viewer2d/grids/grid-streak.js +1 -1
- package/lib/components/viewer2d/item.js +50 -83
- package/lib/components/viewer2d/line.js +242 -315
- package/lib/components/viewer2d/ruler.js +35 -15
- package/lib/components/viewer2d/rulerDist.js +75 -44
- package/lib/components/viewer2d/utils.js +0 -7
- package/lib/components/viewer2d/viewer2d.js +205 -299
- package/lib/components/viewer3d/front3D.js +2 -3
- package/lib/components/viewer3d/libs/mtl-loader.js +2 -9
- package/lib/components/viewer3d/libs/obj-loader.js +2 -9
- package/lib/components/viewer3d/libs/orbit-controls.js +5 -11
- package/lib/components/viewer3d/libs/pointer-lock-controls.js +7 -13
- package/lib/components/viewer3d/viewer3d.js +79 -125
- package/lib/constants.js +7 -115
- package/lib/devLiteRenderer.js +33 -592
- package/lib/index.js +86 -16
- package/lib/models.js +5 -8
- package/lib/plugins/SVGLoader.js +5 -7
- package/lib/plugins/keyboard.js +6 -15
- package/lib/reducers/items-reducer.js +5 -5
- package/lib/reducers/lines-reducer.js +1 -1
- package/lib/reducers/project-reducer.js +2 -4
- package/lib/shared-style.js +4 -4
- package/lib/utils/geometry.js +0 -162
- package/lib/utils/get-edges-of-subgraphs.js +1 -6
- package/lib/utils/graph-cycles.js +8 -7
- package/lib/utils/graph.js +1 -6
- package/lib/utils/helper.js +3 -70
- package/lib/utils/isolate-event-handler.js +121 -1364
- package/lib/utils/molding.js +0 -238
- package/package.json +1 -1
package/lib/class/project.js
CHANGED
|
@@ -17,7 +17,6 @@ var _export = require("../utils/export");
|
|
|
17
17
|
var _export2 = require("../class/export");
|
|
18
18
|
var viewer2DActions = _interopRequireWildcard(require("../actions/viewer2d-actions"));
|
|
19
19
|
var _helper = require("../utils/helper");
|
|
20
|
-
var _convertUnitsLite = require("../utils/convert-units-lite");
|
|
21
20
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
22
21
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
22
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
@@ -44,6 +43,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
44
43
|
key: "newProject",
|
|
45
44
|
value: function newProject(state) {
|
|
46
45
|
var doorStyle = state.toJS().doorStyle === null ? null : state.toJS().doorStyle;
|
|
46
|
+
var oStyle = state.oStyle;
|
|
47
47
|
// let counterTop = state.getIn(['scene', 'layers', layerID, 'counterTop']);
|
|
48
48
|
// let floorStyle = state.getIn(['scene', 'layers', layerID, 'floorStyle']);
|
|
49
49
|
var _viewer2D = state.viewer2D;
|
|
@@ -57,6 +57,7 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
57
57
|
state = new _models.State({});
|
|
58
58
|
state = state.merge({
|
|
59
59
|
doorStyle: doorStyle,
|
|
60
|
+
oStyle: oStyle,
|
|
60
61
|
viewer2D: _viewer2D
|
|
61
62
|
});
|
|
62
63
|
// state = Item.setCounterTop(state, counterTop).updatedState;
|
|
@@ -67,8 +68,9 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
67
68
|
}
|
|
68
69
|
}, {
|
|
69
70
|
key: "loadProject",
|
|
70
|
-
value: function loadProject(state, sceneJSON) {
|
|
71
|
+
value: function loadProject(state, sceneJSON, categoryData) {
|
|
71
72
|
var doorStyle = state.doorStyle;
|
|
73
|
+
var oStyle = state.oStyle;
|
|
72
74
|
var layerID = state.scene.selectedLayer;
|
|
73
75
|
var _viewer2D = state.viewer2D;
|
|
74
76
|
var viewer = state.viewer2D.toJS();
|
|
@@ -100,17 +102,6 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
100
102
|
for (var x in json_items) {
|
|
101
103
|
_loop(x);
|
|
102
104
|
}
|
|
103
|
-
|
|
104
|
-
// making layer's doorStyle when changing room shape
|
|
105
|
-
// THIS LOGIC WAS MOVED TO SET INITIAL DOOR STYLE
|
|
106
|
-
// if (isEmpty(sceneJSON?.layers[layerID]?.doorStyle)) {
|
|
107
|
-
// let newlayer = {
|
|
108
|
-
// ...sceneJSON?.layers[layerID],
|
|
109
|
-
// doorStyle: doorStyle.toJS()
|
|
110
|
-
// };
|
|
111
|
-
// sceneJSON && (sceneJSON.layers[layerID] = newlayer);
|
|
112
|
-
// }
|
|
113
|
-
|
|
114
105
|
var newScene = new _models.Scene(sceneJSON);
|
|
115
106
|
state = new _models.State({
|
|
116
107
|
scene: newScene.toJS(),
|
|
@@ -172,17 +163,35 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
172
163
|
f: f
|
|
173
164
|
});
|
|
174
165
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
166
|
+
if (!doorStyle) {
|
|
167
|
+
if (state.getIn(['scene', 'layers', layerID, 'doorStyle'])) {
|
|
168
|
+
doorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
|
|
169
|
+
}
|
|
179
170
|
}
|
|
180
171
|
state = state.merge({
|
|
181
172
|
doorStyle: doorStyle,
|
|
173
|
+
oStyle: oStyle,
|
|
182
174
|
viewer2D: _viewer2D
|
|
183
175
|
});
|
|
184
176
|
state = _export2.Item.setCounterTop(state, counterTop).updatedState;
|
|
185
177
|
state = _export2.Area.setFloorStyles(state, floorStyle).updatedState;
|
|
178
|
+
if (state.getIn(['scene', 'layers', layerID, 'doorStyle']) && !state.getIn(['scene', 'layers', layerID, 'doorStyle', 'install'])) {
|
|
179
|
+
var layerDoorStyle = state.getIn(['scene', 'layers', layerID, 'doorStyle']);
|
|
180
|
+
var install = '';
|
|
181
|
+
categoryData.data.doorStyles.items.forEach(function (category) {
|
|
182
|
+
category.items.forEach(function (element) {
|
|
183
|
+
if (element.items.filter(function (it) {
|
|
184
|
+
return it.id === layerDoorStyle.id && (layerDoorStyle.install ? category.name === layerDoorStyle.install : true);
|
|
185
|
+
}).length) {
|
|
186
|
+
install = category.name;
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
layerDoorStyle = _objectSpread(_objectSpread({}, layerDoorStyle), {}, {
|
|
191
|
+
install: install
|
|
192
|
+
});
|
|
193
|
+
state = state.mergeIn(['scene', 'layers', layerID, 'doorStyle'], layerDoorStyle);
|
|
194
|
+
}
|
|
186
195
|
this.updateZoomScale(state, a);
|
|
187
196
|
viewer2DActions.updateCameraView(_viewer2D);
|
|
188
197
|
return {
|
|
@@ -315,52 +324,29 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
315
324
|
}
|
|
316
325
|
}, {
|
|
317
326
|
key: "remove",
|
|
318
|
-
value: function remove(state
|
|
327
|
+
value: function remove(state) {
|
|
319
328
|
var selectedLayer = state.getIn(['scene', 'selectedLayer']);
|
|
320
329
|
var _state$getIn = state.getIn(['scene', 'layers', selectedLayer, 'selected']),
|
|
321
330
|
selectedLines = _state$getIn.lines,
|
|
322
331
|
selectedHoles = _state$getIn.holes,
|
|
323
332
|
selectedItems = _state$getIn.items;
|
|
333
|
+
var allVertices = state.getIn(['scene', 'layers', selectedLayer, 'vertices']).toJS();
|
|
334
|
+
var selLines = state.getIn(['scene', 'layers', selectedLayer, 'selected', 'lines']).toJS();
|
|
335
|
+
var lineID = selLines[0];
|
|
336
|
+
var delLine = !(0, _helper.isEmpty)(lineID) && state.getIn(['scene', 'layers', selectedLayer, 'lines', lineID]).toJS();
|
|
337
|
+
var allLines = state.getIn(['scene', 'layers', selectedLayer, 'lines']).toJS();
|
|
324
338
|
var relatedLines = [];
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
// delete element
|
|
337
|
-
if (delObject) {
|
|
338
|
-
switch (delObject.prototype) {
|
|
339
|
-
case constants.ELEMENT_LINE:
|
|
340
|
-
state = _export2.Line.remove(state, selectedLayer, delObject.id).updatedState;
|
|
341
|
-
break;
|
|
342
|
-
case constants.ELEMENT_HOLE:
|
|
343
|
-
state = _export2.Hole.remove(state, selectedLayer, delObject.id).updatedState;
|
|
344
|
-
break;
|
|
345
|
-
case constants.ELEMENT_ITEM:
|
|
346
|
-
state = _export2.Item.remove(state, selectedLayer, delObject.id).updatedState;
|
|
347
|
-
break;
|
|
348
|
-
}
|
|
349
|
-
} else {
|
|
350
|
-
// no specified object, then remove all selected elements
|
|
351
|
-
selectedLines.forEach(function (lineID) {
|
|
352
|
-
state = _export2.Line.remove(state, selectedLayer, lineID).updatedState;
|
|
353
|
-
});
|
|
354
|
-
selectedHoles.forEach(function (holeID) {
|
|
355
|
-
state = _export2.Hole.remove(state, selectedLayer, holeID).updatedState;
|
|
356
|
-
});
|
|
357
|
-
selectedItems.forEach(function (itemID) {
|
|
358
|
-
state = _export2.Item.remove(state, selectedLayer, itemID).updatedState;
|
|
359
|
-
});
|
|
360
|
-
}
|
|
361
|
-
|
|
362
|
-
// update wall if line removed
|
|
363
|
-
if (!(0, _helper.isEmpty)(relatedLines)) {
|
|
339
|
+
!(0, _helper.isEmpty)(delLine) && _export.GeometryUtils.getRelatedLines(relatedLines, delLine, allVertices, allLines);
|
|
340
|
+
selectedLines.forEach(function (lineID) {
|
|
341
|
+
state = _export2.Line.remove(state, selectedLayer, lineID).updatedState;
|
|
342
|
+
});
|
|
343
|
+
selectedHoles.forEach(function (holeID) {
|
|
344
|
+
state = _export2.Hole.remove(state, selectedLayer, holeID).updatedState;
|
|
345
|
+
});
|
|
346
|
+
selectedItems.forEach(function (itemID) {
|
|
347
|
+
state = _export2.Item.remove(state, selectedLayer, itemID).updatedState;
|
|
348
|
+
});
|
|
349
|
+
if (!(0, _helper.isEmpty)(selectedLines) && !(0, _helper.isEmpty)(relatedLines)) {
|
|
364
350
|
state = state.setIn(['mode'], _constants.MODE_DRAWING_LINE);
|
|
365
351
|
relatedLines.forEach(function (relLine, index) {
|
|
366
352
|
state = _export2.Line.select(state, selectedLayer, relLine.id).updatedState;
|
|
@@ -834,98 +820,6 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
834
820
|
updatedState: state
|
|
835
821
|
};
|
|
836
822
|
}
|
|
837
|
-
}, {
|
|
838
|
-
key: "createRoomWithShape",
|
|
839
|
-
value: function createRoomWithShape(state, roomShapeType, width, height, doorStyle) {
|
|
840
|
-
var catalog = state.catalog;
|
|
841
|
-
state = this.newProject(state).updatedState;
|
|
842
|
-
state = state.merge({
|
|
843
|
-
catalog: catalog
|
|
844
|
-
});
|
|
845
|
-
var _viewer2D = state.viewer2D;
|
|
846
|
-
var viewer = _viewer2D.toJS();
|
|
847
|
-
width = (0, _convertUnitsLite.convert)(width).from('in').to('cm');
|
|
848
|
-
height = (0, _convertUnitsLite.convert)(height).from('in').to('cm');
|
|
849
|
-
var layerID = state.scene.selectedLayer;
|
|
850
|
-
state = _export2.Item.setInitialDoorStyle(state, doorStyle).updatedState;
|
|
851
|
-
if ((0, _helper.isEmpty)(viewer)) return {
|
|
852
|
-
updatedState: state
|
|
853
|
-
};
|
|
854
|
-
var halfWidth = width / 2;
|
|
855
|
-
var halfHeight = height / 2;
|
|
856
|
-
var viewerWidth = viewer.SVGWidth;
|
|
857
|
-
var viewerHeight = viewer.SVGHeight;
|
|
858
|
-
var centerPos = {
|
|
859
|
-
x: viewerWidth / 2,
|
|
860
|
-
y: viewerHeight / 2
|
|
861
|
-
};
|
|
862
|
-
var vtLB = {
|
|
863
|
-
x: centerPos.x - halfWidth,
|
|
864
|
-
y: centerPos.y - halfHeight
|
|
865
|
-
};
|
|
866
|
-
var vtRB = {
|
|
867
|
-
x: centerPos.x + halfWidth,
|
|
868
|
-
y: centerPos.y - halfHeight
|
|
869
|
-
};
|
|
870
|
-
var vtRT = {
|
|
871
|
-
x: centerPos.x + halfWidth,
|
|
872
|
-
y: centerPos.y + halfHeight
|
|
873
|
-
};
|
|
874
|
-
var vtLT = {
|
|
875
|
-
x: centerPos.x - halfWidth,
|
|
876
|
-
y: centerPos.y + halfHeight
|
|
877
|
-
};
|
|
878
|
-
var vertices = [];
|
|
879
|
-
switch (roomShapeType) {
|
|
880
|
-
case 'rectangle':
|
|
881
|
-
vertices = [vtLB, vtLT, vtRT, vtRB];
|
|
882
|
-
break;
|
|
883
|
-
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_BOTTOM:
|
|
884
|
-
vertices = [vtLB, vtRB, vtRT];
|
|
885
|
-
break;
|
|
886
|
-
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_TOP:
|
|
887
|
-
vertices = [vtRB, vtRT, vtLT];
|
|
888
|
-
break;
|
|
889
|
-
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_TOP:
|
|
890
|
-
vertices = [vtRT, vtLT, vtLB];
|
|
891
|
-
break;
|
|
892
|
-
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_BOTTOM:
|
|
893
|
-
vertices = [vtLT, vtLB, vtRB];
|
|
894
|
-
break;
|
|
895
|
-
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_LEFT_TOP_RIGHT:
|
|
896
|
-
vertices = [vtRB, vtRT, vtLT, vtLB];
|
|
897
|
-
break;
|
|
898
|
-
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_TOP_RIGHT_BOTTOM:
|
|
899
|
-
vertices = [vtLB, vtRB, vtRT, vtLT];
|
|
900
|
-
break;
|
|
901
|
-
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_RIGHT_BOTTOM_LEFT:
|
|
902
|
-
vertices = [vtLT, vtLB, vtRB, vtRT];
|
|
903
|
-
break;
|
|
904
|
-
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_BOTTOM_LEFT_TOP:
|
|
905
|
-
vertices = [vtRT, vtLT, vtLB, vtRB];
|
|
906
|
-
break;
|
|
907
|
-
}
|
|
908
|
-
for (var i = 0; i < vertices.length - 1; i++) {
|
|
909
|
-
state = _export2.Line.create(state, layerID, 'wall', vertices[i].x, vertices[i].y, vertices[i + 1].x, vertices[i + 1].y).updatedState;
|
|
910
|
-
}
|
|
911
|
-
if (roomShapeType === constants.ROOM_SHAPE_TYPE.RECTANGLE) {
|
|
912
|
-
state = _export2.Line.create(state, layerID, 'wall', vertices[vertices.length - 1].x, vertices[vertices.length - 1].y, vertices[0].x, vertices[0].y).updatedState;
|
|
913
|
-
}
|
|
914
|
-
var layer = state.getIn(['scene', 'layers', layerID]);
|
|
915
|
-
var lines = layer.getIn(['lines']).toJS();
|
|
916
|
-
var drawingInfo = {};
|
|
917
|
-
var lineKey = Object.keys(lines);
|
|
918
|
-
for (var _i = 0; _i < lineKey.length; _i++) {
|
|
919
|
-
if (!(0, _helper.isEmpty)(lineKey)) {
|
|
920
|
-
drawingInfo.drawingLine = layer.getIn(['lines', lineKey[_i]]);
|
|
921
|
-
}
|
|
922
|
-
state = _export2.Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
|
|
923
|
-
}
|
|
924
|
-
state = (0, _helper.centering2D)(state);
|
|
925
|
-
return {
|
|
926
|
-
updatedState: state
|
|
927
|
-
};
|
|
928
|
-
}
|
|
929
823
|
}]);
|
|
930
824
|
}();
|
|
931
825
|
module.exports = exports.default;
|
|
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = Content;
|
|
9
|
-
var _react =
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
10
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
11
11
|
var _viewer2d = _interopRequireDefault(require("./viewer2d/viewer2d"));
|
|
12
12
|
var _viewer3d = _interopRequireDefault(require("./viewer3d/viewer3d"));
|
|
@@ -26,18 +26,9 @@ function Content(_ref, _ref2) {
|
|
|
26
26
|
setToolbar = _ref.setToolbar,
|
|
27
27
|
replaceCabinet = _ref.replaceCabinet,
|
|
28
28
|
keyDownEnable = _ref.keyDownEnable,
|
|
29
|
-
catalog = _ref.catalog
|
|
30
|
-
onInternalEvent = _ref.onInternalEvent;
|
|
29
|
+
catalog = _ref.catalog;
|
|
31
30
|
var projectActions = _ref2.projectActions;
|
|
32
31
|
var mode = state.get('mode');
|
|
33
|
-
|
|
34
|
-
// Internal Event for unselect_all
|
|
35
|
-
(0, _react.useEffect)(function () {
|
|
36
|
-
if (state.getIn(['scene', 'layers', 'layer-1', 'selected', 'vertices']).size + state.getIn(['scene', 'layers', 'layer-1', 'selected', 'lines']).size + state.getIn(['scene', 'layers', 'layer-1', 'selected', 'holes']).size + state.getIn(['scene', 'layers', 'layer-1', 'selected', 'areas']).size + state.getIn(['scene', 'layers', 'layer-1', 'selected', 'items']).size < 1) onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
37
|
-
type: constants.INTERNAL_EVENT_UNSELECT_ALL,
|
|
38
|
-
value: null
|
|
39
|
-
});
|
|
40
|
-
}, [state.getIn(['scene', 'layers', 'layer-1', 'selected'])]);
|
|
41
32
|
switch (mode) {
|
|
42
33
|
// this mode is when view elevation
|
|
43
34
|
case constants.MODE_ELEVATION_VIEW:
|
|
@@ -59,8 +50,7 @@ function Content(_ref, _ref2) {
|
|
|
59
50
|
setToolbar: setToolbar,
|
|
60
51
|
replaceCabinet: replaceCabinet,
|
|
61
52
|
keyDownEnable: keyDownEnable,
|
|
62
|
-
downloadFlag: false
|
|
63
|
-
onInternalEvent: onInternalEvent
|
|
53
|
+
downloadFlag: false
|
|
64
54
|
});
|
|
65
55
|
case constants.MODE_3D_FIRST_PERSON:
|
|
66
56
|
return /*#__PURE__*/_react["default"].createElement(_viewer3dFirstPerson["default"], {
|
|
@@ -98,8 +88,7 @@ function Content(_ref, _ref2) {
|
|
|
98
88
|
width: width,
|
|
99
89
|
height: height,
|
|
100
90
|
setToolbar: setToolbar,
|
|
101
|
-
replaceCabinet: replaceCabinet
|
|
102
|
-
onInternalEvent: onInternalEvent
|
|
91
|
+
replaceCabinet: replaceCabinet
|
|
103
92
|
});
|
|
104
93
|
case constants.MODE_ROTATING_ITEM_3D:
|
|
105
94
|
case constants.MODE_DRAGGING_ITEM_3D:
|
|
@@ -115,8 +104,7 @@ function Content(_ref, _ref2) {
|
|
|
115
104
|
setToolbar: setToolbar,
|
|
116
105
|
replaceCabinet: replaceCabinet,
|
|
117
106
|
keyDownEnable: keyDownEnable,
|
|
118
|
-
downloadFlag: false
|
|
119
|
-
onInternalEvent: onInternalEvent
|
|
107
|
+
downloadFlag: false
|
|
120
108
|
});
|
|
121
109
|
|
|
122
110
|
// case constants.MODE_CONFIGURING_PROJECT:
|
|
@@ -141,8 +129,7 @@ Content.propTypes = {
|
|
|
141
129
|
state: _propTypes["default"].object.isRequired,
|
|
142
130
|
width: _propTypes["default"].number.isRequired,
|
|
143
131
|
height: _propTypes["default"].number.isRequired,
|
|
144
|
-
replaceCabinet: _propTypes["default"].func.isRequired
|
|
145
|
-
onInternalEvent: _propTypes["default"].func.isRequired
|
|
132
|
+
replaceCabinet: _propTypes["default"].func.isRequired
|
|
146
133
|
};
|
|
147
134
|
Content.contextTypes = {
|
|
148
135
|
projectActions: _propTypes["default"].object.isRequired
|
|
@@ -14,7 +14,6 @@ var _convertUnitsLite = require("../../utils/convert-units-lite");
|
|
|
14
14
|
var _export = require("../../utils/export");
|
|
15
15
|
var _constants = require("../../constants");
|
|
16
16
|
var _utils = require("./utils");
|
|
17
|
-
var _geometry = require("../../utils/geometry");
|
|
18
17
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
19
18
|
var STYLE_LINE = {
|
|
20
19
|
fill: '#0096fd',
|
|
@@ -31,7 +30,6 @@ var STYLE_CIRCLE2 = {
|
|
|
31
30
|
cursor: 'ew-resize'
|
|
32
31
|
};
|
|
33
32
|
function Item(_ref, _ref2) {
|
|
34
|
-
var _element$render2D;
|
|
35
33
|
var layer = _ref.layer,
|
|
36
34
|
item = _ref.item,
|
|
37
35
|
scene = _ref.scene,
|
|
@@ -41,8 +39,7 @@ function Item(_ref, _ref2) {
|
|
|
41
39
|
var x = item.x,
|
|
42
40
|
y = item.y,
|
|
43
41
|
rotation = item.rotation,
|
|
44
|
-
id = item.id
|
|
45
|
-
layoutpos = item.layoutpos;
|
|
42
|
+
id = item.id;
|
|
46
43
|
var showBaseCabinetMeasure = scene.showBaseCabinetMeasure,
|
|
47
44
|
showWallCabinetMeasure = scene.showWallCabinetMeasure;
|
|
48
45
|
var vertices = layer.vertices;
|
|
@@ -53,7 +50,6 @@ function Item(_ref, _ref2) {
|
|
|
53
50
|
var allLineRects;
|
|
54
51
|
var allItemRect;
|
|
55
52
|
var width, height;
|
|
56
|
-
var altitude = item.properties.getIn(['altitude', '_length']);
|
|
57
53
|
var _useState = (0, _react.useState)(false),
|
|
58
54
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
59
55
|
clockRotateState = _useState2[0],
|
|
@@ -122,11 +118,16 @@ function Item(_ref, _ref2) {
|
|
|
122
118
|
var selectedItem;
|
|
123
119
|
if (layer.selected.items.size > 0) {
|
|
124
120
|
selectedItem = layer.getIn(['items', layer.selected.items.get(0)]);
|
|
125
|
-
var
|
|
126
|
-
var
|
|
121
|
+
var catid = selectedItem.type;
|
|
122
|
+
var cat = catalog.elements[catid];
|
|
123
|
+
if (!cat) cat = catalog.elements[(0, _utils.returnReplaceableDeepSearchType)(catid)];
|
|
124
|
+
if (cat === undefined || cat === null) {
|
|
125
|
+
cat = catalog.getIn(['elements', catid]);
|
|
126
|
+
if (!cat) cat = catalog.getIn(['elements', (0, _utils.returnReplaceableDeepSearchType)(catid)]);
|
|
127
|
+
}
|
|
127
128
|
currentItem = {
|
|
128
129
|
selectedItem: selectedItem,
|
|
129
|
-
cat:
|
|
130
|
+
cat: cat
|
|
130
131
|
};
|
|
131
132
|
}
|
|
132
133
|
layer.items.forEach(function (item) {
|
|
@@ -138,7 +139,8 @@ function Item(_ref, _ref2) {
|
|
|
138
139
|
rotRad: item.rotation / 180 * Math.PI
|
|
139
140
|
};
|
|
140
141
|
var catid = item.type;
|
|
141
|
-
var cat =
|
|
142
|
+
var cat = catalog.elements[catid];
|
|
143
|
+
if (!cat) cat = catalog.elements[(0, _utils.returnReplaceableDeepSearchType)(catid)];
|
|
142
144
|
var width = (0, _convertUnitsLite.convert)(item.properties.getIn(['width', '_length'])).from('in').to('cm');
|
|
143
145
|
var height = (0, _convertUnitsLite.convert)(item.properties.getIn(['depth', '_length'])).from('in').to('cm');
|
|
144
146
|
// let width = cat.info.sizeinfo.width;
|
|
@@ -157,36 +159,33 @@ function Item(_ref, _ref2) {
|
|
|
157
159
|
// }
|
|
158
160
|
|
|
159
161
|
if (!item.selected) {
|
|
160
|
-
var
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
rect: [point(x3, y3), point(x0, y0), point(x3, y3), point(x0, y0)]
|
|
188
|
-
});
|
|
189
|
-
}
|
|
162
|
+
var _x = val.pos.x;
|
|
163
|
+
var _y = val.pos.y;
|
|
164
|
+
var rotRad = val.rotRad;
|
|
165
|
+
var w = val.size.width / 2;
|
|
166
|
+
var h = val.size.height / 2;
|
|
167
|
+
var mx = _x - w * Math.cos(rotRad);
|
|
168
|
+
var my = _y - w * Math.sin(rotRad);
|
|
169
|
+
var x0 = mx + h * Math.sin(rotRad);
|
|
170
|
+
var y0 = my - h * Math.cos(rotRad);
|
|
171
|
+
var x3 = mx * 2 - x0;
|
|
172
|
+
var y3 = my * 2 - y0;
|
|
173
|
+
var x1 = _x * 2 - x3;
|
|
174
|
+
var y1 = _y * 2 - y3;
|
|
175
|
+
var x2 = _x * 2 - x0;
|
|
176
|
+
var y2 = _y * 2 - y0;
|
|
177
|
+
rectarray.push({
|
|
178
|
+
rect: [point(x0, y0), point(x1, y1), point(x0, y0), point(x1, y1)]
|
|
179
|
+
});
|
|
180
|
+
rectarray.push({
|
|
181
|
+
rect: [point(x1, y1), point(x2, y2), point(x1, y1), point(x2, y2)]
|
|
182
|
+
});
|
|
183
|
+
rectarray.push({
|
|
184
|
+
rect: [point(x2, y2), point(x3, y3), point(x2, y2), point(x3, y3)]
|
|
185
|
+
});
|
|
186
|
+
rectarray.push({
|
|
187
|
+
rect: [point(x3, y3), point(x0, y0), point(x3, y3), point(x0, y0)]
|
|
188
|
+
});
|
|
190
189
|
}
|
|
191
190
|
});
|
|
192
191
|
|
|
@@ -247,38 +246,25 @@ function Item(_ref, _ref2) {
|
|
|
247
246
|
*/
|
|
248
247
|
var getDistant = function getDistant(x, y, rotRad) {
|
|
249
248
|
var center_h = 3 * height / 8;
|
|
250
|
-
var center_x = x;
|
|
249
|
+
var center_x = x;
|
|
251
250
|
var center_y = y;
|
|
252
|
-
var center_x1 = x - center_h * Math.sin(rotRad);
|
|
251
|
+
var center_x1 = x - center_h * Math.sin(rotRad);
|
|
253
252
|
var center_y1 = y + center_h * Math.cos(rotRad);
|
|
254
253
|
var PointArray = [];
|
|
255
|
-
|
|
256
|
-
var
|
|
257
|
-
// [rectCenterPoint] has four middle points of cabinet rect edges
|
|
258
|
-
var comparelength = []; // distance array from rectCenterPoint[i] to other lines(walls, other cabinet rect edges)
|
|
254
|
+
curiteminfo.rectCenterPoint.forEach(function (centerpoint) {
|
|
255
|
+
var comparelength = [];
|
|
259
256
|
var a;
|
|
260
|
-
var RectLineFuction;
|
|
257
|
+
var RectLineFuction;
|
|
261
258
|
if (centerpoint[1] === 180 || centerpoint[1] === 0) RectLineFuction = _export.GeometryUtils.linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x1, center_y1);else RectLineFuction = _export.GeometryUtils.linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x, center_y);
|
|
262
259
|
allRect.forEach(function (linerect) {
|
|
263
|
-
// calc distance to all other lines
|
|
264
260
|
var p0 = _export.GeometryUtils.clone_point(linerect.rect[2]);
|
|
265
261
|
var p1 = _export.GeometryUtils.clone_point(linerect.rect[3]);
|
|
266
|
-
var lineFunction = {};
|
|
262
|
+
var lineFunction = {};
|
|
267
263
|
if (p0.x !== p1.x || p0.y !== p1.y) lineFunction = _export.GeometryUtils.linePassingThroughTwoPoints(p0.x, p0.y, p1.x, p1.y);
|
|
268
|
-
// intersection between normal line and other line
|
|
269
264
|
var coordinatePoint = _export.GeometryUtils.twoLinesIntersection(lineFunction.a, lineFunction.b, lineFunction.c, RectLineFuction.a, RectLineFuction.b, RectLineFuction.c);
|
|
270
265
|
if (coordinatePoint !== undefined) {
|
|
271
|
-
if (
|
|
272
|
-
|
|
273
|
-
_export.GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > _export.GeometryUtils.pointsDistance(p0.x, p0.y, coordinatePoint.x, coordinatePoint.y) && _export.GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > _export.GeometryUtils.pointsDistance(p1.x, p1.y, coordinatePoint.x, coordinatePoint.y)) {
|
|
274
|
-
// check the intersection point is outside direction of edge
|
|
275
|
-
var isOutside = true;
|
|
276
|
-
for (var j = 0; j < curiteminfo.rectCenterPoint.length; j++) {
|
|
277
|
-
if (j === i) continue;
|
|
278
|
-
var otherCenterPoint = curiteminfo.rectCenterPoint[j];
|
|
279
|
-
if (_export.GeometryUtils.isPointOnLineSegment(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y, otherCenterPoint[0].x, otherCenterPoint[0].y)) isOutside = false;
|
|
280
|
-
}
|
|
281
|
-
if (isOutside && _export.GeometryUtils.pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > _export.GeometryUtils.pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
|
|
266
|
+
if (_export.GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > _export.GeometryUtils.pointsDistance(p0.x, p0.y, coordinatePoint.x, coordinatePoint.y) && _export.GeometryUtils.pointsDistance(p0.x, p0.y, p1.x, p1.y) > _export.GeometryUtils.pointsDistance(p1.x, p1.y, coordinatePoint.x, coordinatePoint.y)) {
|
|
267
|
+
if (_export.GeometryUtils.pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > _export.GeometryUtils.pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
|
|
282
268
|
comparelength.push(_export.GeometryUtils.pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y));
|
|
283
269
|
a = Math.min.apply(null, comparelength);
|
|
284
270
|
}
|
|
@@ -286,10 +272,7 @@ function Item(_ref, _ref2) {
|
|
|
286
272
|
}
|
|
287
273
|
});
|
|
288
274
|
PointArray.push([a, centerpoint[1]]);
|
|
289
|
-
};
|
|
290
|
-
for (var i = 0; i < curiteminfo.rectCenterPoint.length; i++) {
|
|
291
|
-
_loop(i);
|
|
292
|
-
}
|
|
275
|
+
});
|
|
293
276
|
return {
|
|
294
277
|
PointArray: PointArray
|
|
295
278
|
};
|
|
@@ -298,22 +281,9 @@ function Item(_ref, _ref2) {
|
|
|
298
281
|
var nh = height / 2;
|
|
299
282
|
var _getDistant = getDistant(x, y, val.rotRad),
|
|
300
283
|
PointArray = _getDistant.PointArray;
|
|
301
|
-
var catid = item.type;
|
|
302
|
-
var cat = catalog.elements[catid];
|
|
303
284
|
PointArray.forEach(function (pointElement, index) {
|
|
304
285
|
if (pointElement[0] == undefined) PointArray[index][0] = 0;
|
|
305
|
-
// if (pointElement[1] === -90 && cat.info.is_corner !== 1) {
|
|
306
|
-
// PointArray[index][0] -= 4;
|
|
307
|
-
// }
|
|
308
|
-
});
|
|
309
|
-
var cnt = 0;
|
|
310
|
-
PointArray.forEach(function (pointElement) {
|
|
311
|
-
if (pointElement[0] == 0) cnt++;
|
|
312
286
|
});
|
|
313
|
-
if (cnt == 4 || cnt == 3) {
|
|
314
|
-
PointArray[0][0] = 100;
|
|
315
|
-
PointArray[1][0] = 100;
|
|
316
|
-
}
|
|
317
287
|
if (Array.isArray(PointArray)) {
|
|
318
288
|
itemsActions.storeDistArray(layerID, id, PointArray);
|
|
319
289
|
}
|
|
@@ -341,12 +311,12 @@ function Item(_ref, _ref2) {
|
|
|
341
311
|
length: itemDistanceFromLine,
|
|
342
312
|
angle: rotation,
|
|
343
313
|
rotation: element[1],
|
|
344
|
-
transform: "translate(".concat(element[1] === 180 ? -nw : element[1] === 0 ? nw : 0, ", ").concat(element[1] === 90 ? nh : element[1] === -90 ?
|
|
314
|
+
transform: "translate(".concat(element[1] === 180 ? -nw : element[1] === 0 ? nw : 0, ", ").concat(element[1] === 90 ? nh : element[1] === -90 ? -nh : 3 * nh / 4, ") rotate(").concat(element[1], ", 0, 0)")
|
|
345
315
|
})));
|
|
346
316
|
}
|
|
347
317
|
});
|
|
348
318
|
}
|
|
349
|
-
var renderedItem = element
|
|
319
|
+
var renderedItem = element.render2D.call(element, item, layer, scene);
|
|
350
320
|
var isSmall = false;
|
|
351
321
|
if (width < 40) isSmall = true;
|
|
352
322
|
var parts = [];
|
|
@@ -423,10 +393,7 @@ function Item(_ref, _ref2) {
|
|
|
423
393
|
y: "-19",
|
|
424
394
|
height: "16",
|
|
425
395
|
width: "16",
|
|
426
|
-
style:
|
|
427
|
-
transform: 'rotateX(180deg)',
|
|
428
|
-
opacity: 0.5
|
|
429
|
-
} : {
|
|
396
|
+
style: {
|
|
430
397
|
transform: 'rotateX(180deg)'
|
|
431
398
|
}
|
|
432
399
|
})), /*#__PURE__*/_react["default"].createElement("g", {
|