kitchen-simulator 3.1.11 → 3.1.13
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/catalog/factories/area-factory-3d.js +17 -17
- package/es/catalog/holes/window-clear/planner-element.js +2 -2
- package/es/catalog/utils/item-loader.js +197 -197
- package/es/components/viewer2d/item.js +36 -12
- package/es/components/viewer3d/viewer3d.js +46 -71
- package/es/constants.js +1 -1
- package/es/devLiteRenderer.js +108 -98
- package/es/utils/geometry.js +50 -94
- package/es/utils/isolate-event-handler.js +23 -7
- package/lib/catalog/factories/area-factory-3d.js +14 -14
- package/lib/catalog/holes/window-clear/planner-element.js +2 -2
- package/lib/catalog/utils/item-loader.js +194 -194
- package/lib/components/viewer2d/item.js +36 -12
- package/lib/components/viewer3d/viewer3d.js +46 -71
- package/lib/constants.js +1 -1
- package/lib/devLiteRenderer.js +103 -93
- package/lib/utils/geometry.js +50 -94
- package/lib/utils/isolate-event-handler.js +23 -7
- package/package.json +1 -1
package/es/devLiteRenderer.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
3
|
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
4
|
-
import React, { useState, useEffect } from
|
|
5
|
-
import { Map } from
|
|
6
|
-
import ContainerDimensions from
|
|
4
|
+
import React, { useState, useEffect } from 'react';
|
|
5
|
+
import { Map } from 'immutable';
|
|
6
|
+
import ContainerDimensions from 'react-container-dimensions';
|
|
7
7
|
import projectItemsCatalog from "./mocks/projectItemsCatalog.json";
|
|
8
8
|
import mockProps from "./mocks/mockProps.json";
|
|
9
9
|
import cabinetPaylod from "./mocks/cabinetPayload2.json";
|
|
10
|
+
import cabinetW0940Payload from "./mocks/cabinetPayload.json";
|
|
10
11
|
import appliancePaylod from "./mocks/appliancePayload.json";
|
|
11
12
|
import doorStylePaylod2 from "./mocks/doorStylePayload2.json";
|
|
12
13
|
import roomShapePayload from "./mocks/roomShapePayload.json";
|
|
@@ -16,15 +17,15 @@ import furnishingPayload from "./mocks/furnishingPayload.json";
|
|
|
16
17
|
import rectangleData from "./mocks/rectangleShape.json";
|
|
17
18
|
import moldingPayload from "./mocks/moldingPayload.json";
|
|
18
19
|
import replaceCabinetPayload from "./mocks/replaceCabinetPayload.json";
|
|
19
|
-
import ReactDOM from
|
|
20
|
+
import ReactDOM from 'react-dom';
|
|
20
21
|
import LiteRenderer from "./LiteRenderer";
|
|
21
|
-
import { Button } from
|
|
22
|
+
import { Button } from 'antd';
|
|
22
23
|
import { LEFT, RIGHT, TOP, BOTTOM, EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_PROJECT_SETTING, PROJECT_SETTING_OPTION, EXTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, BACK_DIST_ANG, ATT_ITEM_POS, ATT_ITEM_ROTATION, ATT_LINE_LENGTH, EXTERNAL_EVENT_UPDATE_PROPERTY, PROP_FLIP_DOOR_HANDLE, PROP_OPEN_DOORS, EXTERNAL_EVENT_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_ADD_HOLE, HOLE_NAMES, EXTERNAL_EVENT_CENTERING_2D, PROP_ALTITUDE, EXTERNAL_EVENT_DUPLICATE_ELEMENT, ELEMENT_ITEM, EXTERNAL_EVENT_DELETE_ELEMENT, PROP_RESIZE_WIDTH, EXTERNAL_EVENT_REPLACE_CABINET, EXTERNAL_EVENT_SET_FINISHING, FINISHING_TYPE } from "./constants";
|
|
23
24
|
import { convert } from "./utils/convert-units-lite";
|
|
24
25
|
|
|
25
26
|
// --- renderer props ---
|
|
26
27
|
var options = {
|
|
27
|
-
unit:
|
|
28
|
+
unit: 'in',
|
|
28
29
|
enable3D: true
|
|
29
30
|
};
|
|
30
31
|
var onInternalEvent = /*#__PURE__*/function () {
|
|
@@ -33,7 +34,7 @@ var onInternalEvent = /*#__PURE__*/function () {
|
|
|
33
34
|
return _regeneratorRuntime.wrap(function (_context) {
|
|
34
35
|
while (1) switch (_context.prev = _context.next) {
|
|
35
36
|
case 0:
|
|
36
|
-
console.log(
|
|
37
|
+
console.log('EVENT:', evt.type, evt.value);
|
|
37
38
|
_t = evt.type;
|
|
38
39
|
_context.next = _t === INTERNAL_EVENT_ITEMS_CATALOG ? 1 : 3;
|
|
39
40
|
break;
|
|
@@ -52,7 +53,7 @@ var onInternalEvent = /*#__PURE__*/function () {
|
|
|
52
53
|
return _ref.apply(this, arguments);
|
|
53
54
|
};
|
|
54
55
|
}();
|
|
55
|
-
document.getElementById(
|
|
56
|
+
document.getElementById('app').style.display = 'block';
|
|
56
57
|
function WorkSpace(props) {
|
|
57
58
|
var _useState = useState(null),
|
|
58
59
|
_useState2 = _slicedToArray(_useState, 2),
|
|
@@ -214,6 +215,15 @@ function WorkSpace(props) {
|
|
|
214
215
|
setExternalEvent(evt);
|
|
215
216
|
}
|
|
216
217
|
}, "Add B12 Cabinet"), /*#__PURE__*/React.createElement(Button, {
|
|
218
|
+
actionType: "danger",
|
|
219
|
+
onClick: function onClick() {
|
|
220
|
+
var evt = {
|
|
221
|
+
type: EXTERNAL_EVENT_ADD_ITEM,
|
|
222
|
+
payload: cabinetW0940Payload
|
|
223
|
+
};
|
|
224
|
+
setExternalEvent(evt);
|
|
225
|
+
}
|
|
226
|
+
}, "Add W0930 Cabinet"), /*#__PURE__*/React.createElement(Button, {
|
|
217
227
|
actionType: "danger",
|
|
218
228
|
onClick: function onClick() {
|
|
219
229
|
var evt = {
|
|
@@ -232,91 +242,91 @@ function WorkSpace(props) {
|
|
|
232
242
|
var evt = {
|
|
233
243
|
type: EXTERNAL_EVENT_ADD_ROOM_SHAPE,
|
|
234
244
|
payload: {
|
|
235
|
-
roomShapeType:
|
|
245
|
+
roomShapeType: 'rectangle',
|
|
236
246
|
width: 250,
|
|
237
247
|
height: 100,
|
|
238
248
|
doorStyle: {
|
|
239
249
|
id: 36,
|
|
240
|
-
type:
|
|
241
|
-
name:
|
|
242
|
-
thumbnail:
|
|
243
|
-
texture:
|
|
244
|
-
color:
|
|
250
|
+
type: 'door',
|
|
251
|
+
name: 'Brilliant White Shaker',
|
|
252
|
+
thumbnail: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/thumbnail/Brilliant%20White%20Shaker%20-%20RTA.jpg',
|
|
253
|
+
texture: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
254
|
+
color: '#ffffff',
|
|
245
255
|
glossness: 1,
|
|
246
256
|
door_style_id: 42,
|
|
247
257
|
brightness: 1,
|
|
248
|
-
sku:
|
|
249
|
-
color_family:
|
|
250
|
-
color_sku_alias:
|
|
251
|
-
door_style_name:
|
|
252
|
-
install:
|
|
258
|
+
sku: 'SW',
|
|
259
|
+
color_family: ',10,',
|
|
260
|
+
color_sku_alias: 'SW',
|
|
261
|
+
door_style_name: 'Shaker',
|
|
262
|
+
install: '',
|
|
253
263
|
doorStyles: {
|
|
254
|
-
base:
|
|
255
|
-
counttop:
|
|
256
|
-
interior:
|
|
257
|
-
base_door_1:
|
|
258
|
-
base_fixed_drawer_door_1:
|
|
259
|
-
base_drawer_1:
|
|
260
|
-
base_drawer_door_1:
|
|
261
|
-
door_handle_1:
|
|
262
|
-
fixed_drawer_door_handle_1:
|
|
263
|
-
drawer_door_handle_1:
|
|
264
|
-
base_door_2:
|
|
265
|
-
base_fixed_drawer_door_2:
|
|
266
|
-
base_drawer_2:
|
|
267
|
-
base_drawer_door_2:
|
|
268
|
-
door_handle_2:
|
|
269
|
-
fixed_drawer_door_handle_2:
|
|
270
|
-
drawer_door_handle_2:
|
|
271
|
-
base_door_3:
|
|
272
|
-
base_fixed_drawer_door_3:
|
|
273
|
-
base_drawer_3:
|
|
274
|
-
base_drawer_door_3:
|
|
275
|
-
door_handle_3:
|
|
276
|
-
fixed_drawer_door_handle_3:
|
|
277
|
-
drawer_door_handle_3:
|
|
278
|
-
base_door_4:
|
|
279
|
-
base_fixed_drawer_door_4:
|
|
280
|
-
base_drawer_4:
|
|
281
|
-
base_drawer_door_4:
|
|
282
|
-
door_handle_4:
|
|
283
|
-
fixed_drawer_door_handle_4:
|
|
284
|
-
drawer_door_handle_4:
|
|
285
|
-
base_door_5:
|
|
286
|
-
base_fixed_drawer_door_5:
|
|
287
|
-
base_drawer_5:
|
|
288
|
-
base_drawer_door_5:
|
|
289
|
-
door_handle_5:
|
|
290
|
-
fixed_drawer_door_handle_5:
|
|
291
|
-
drawer_door_handle_5:
|
|
292
|
-
base_door_6:
|
|
293
|
-
base_fixed_drawer_door_6:
|
|
294
|
-
base_drawer_6:
|
|
295
|
-
base_drawer_door_6:
|
|
296
|
-
door_handle_6:
|
|
297
|
-
fixed_drawer_door_handle_6:
|
|
298
|
-
drawer_door_handle_6:
|
|
299
|
-
base_door_7:
|
|
300
|
-
base_fixed_drawer_door_7:
|
|
301
|
-
base_drawer_7:
|
|
302
|
-
base_drawer_door_7:
|
|
303
|
-
door_handle_7:
|
|
304
|
-
fixed_drawer_door_handle_7:
|
|
305
|
-
drawer_door_handle_7:
|
|
306
|
-
base_door_8:
|
|
307
|
-
base_fixed_drawer_door_8:
|
|
308
|
-
base_drawer_8:
|
|
309
|
-
base_drawer_door_8:
|
|
310
|
-
door_handle_8:
|
|
311
|
-
fixed_drawer_door_handle_8:
|
|
312
|
-
drawer_door_handle_8:
|
|
313
|
-
base_door_9:
|
|
314
|
-
base_fixed_drawer_door_9:
|
|
315
|
-
base_drawer_9:
|
|
316
|
-
base_drawer_door_9:
|
|
317
|
-
door_handle_9:
|
|
318
|
-
fixed_drawer_door_handle_9:
|
|
319
|
-
drawer_door_handle_9:
|
|
264
|
+
base: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
265
|
+
counttop: 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg',
|
|
266
|
+
interior: 'https://media.test.diydesignspace.com/uploads/assets/default/maple.jpg',
|
|
267
|
+
base_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
268
|
+
base_fixed_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
269
|
+
base_drawer_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
270
|
+
base_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
271
|
+
door_handle_1: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
272
|
+
fixed_drawer_door_handle_1: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
273
|
+
drawer_door_handle_1: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
274
|
+
base_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
275
|
+
base_fixed_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
276
|
+
base_drawer_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
277
|
+
base_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
278
|
+
door_handle_2: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
279
|
+
fixed_drawer_door_handle_2: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
280
|
+
drawer_door_handle_2: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
281
|
+
base_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
282
|
+
base_fixed_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
283
|
+
base_drawer_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
284
|
+
base_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
285
|
+
door_handle_3: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
286
|
+
fixed_drawer_door_handle_3: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
287
|
+
drawer_door_handle_3: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
288
|
+
base_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
289
|
+
base_fixed_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
290
|
+
base_drawer_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
291
|
+
base_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
292
|
+
door_handle_4: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
293
|
+
fixed_drawer_door_handle_4: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
294
|
+
drawer_door_handle_4: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
295
|
+
base_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
296
|
+
base_fixed_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
297
|
+
base_drawer_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
298
|
+
base_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
299
|
+
door_handle_5: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
300
|
+
fixed_drawer_door_handle_5: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
301
|
+
drawer_door_handle_5: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
302
|
+
base_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
303
|
+
base_fixed_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
304
|
+
base_drawer_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
305
|
+
base_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
306
|
+
door_handle_6: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
307
|
+
fixed_drawer_door_handle_6: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
308
|
+
drawer_door_handle_6: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
309
|
+
base_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
310
|
+
base_fixed_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
311
|
+
base_drawer_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
312
|
+
base_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
313
|
+
door_handle_7: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
314
|
+
fixed_drawer_door_handle_7: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
315
|
+
drawer_door_handle_7: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
316
|
+
base_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
317
|
+
base_fixed_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
318
|
+
base_drawer_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
319
|
+
base_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
320
|
+
door_handle_8: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
321
|
+
fixed_drawer_door_handle_8: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
322
|
+
drawer_door_handle_8: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
323
|
+
base_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
324
|
+
base_fixed_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
325
|
+
base_drawer_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
326
|
+
base_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
327
|
+
door_handle_9: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
328
|
+
fixed_drawer_door_handle_9: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
329
|
+
drawer_door_handle_9: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg'
|
|
320
330
|
},
|
|
321
331
|
installation_types: [125, 124]
|
|
322
332
|
}
|
|
@@ -475,7 +485,7 @@ function WorkSpace(props) {
|
|
|
475
485
|
// cm
|
|
476
486
|
_length: 10,
|
|
477
487
|
// inch
|
|
478
|
-
_unit:
|
|
488
|
+
_unit: 'in'
|
|
479
489
|
})
|
|
480
490
|
}
|
|
481
491
|
};
|
|
@@ -488,7 +498,7 @@ function WorkSpace(props) {
|
|
|
488
498
|
type: EXTERNAL_EVENT_DUPLICATE_ELEMENT,
|
|
489
499
|
payload: {
|
|
490
500
|
elementPrototype: ELEMENT_ITEM,
|
|
491
|
-
elementId:
|
|
501
|
+
elementId: '' // id of current operating element
|
|
492
502
|
}
|
|
493
503
|
};
|
|
494
504
|
setExternalEvent(evt);
|
|
@@ -500,7 +510,7 @@ function WorkSpace(props) {
|
|
|
500
510
|
type: EXTERNAL_EVENT_DELETE_ELEMENT,
|
|
501
511
|
payload: {
|
|
502
512
|
elementPrototype: ELEMENT_ITEM,
|
|
503
|
-
elementId:
|
|
513
|
+
elementId: '' // id of current operating element
|
|
504
514
|
}
|
|
505
515
|
};
|
|
506
516
|
setExternalEvent(evt);
|
|
@@ -561,7 +571,7 @@ function WorkSpace(props) {
|
|
|
561
571
|
type: EXTERNAL_EVENT_SET_FINISHING,
|
|
562
572
|
payload: {
|
|
563
573
|
category: FINISHING_TYPE.COUNTER_TOP,
|
|
564
|
-
texture:
|
|
574
|
+
texture: 'https://media.test.diydesignspace.com/uploads/CountTop/202111302746_7/texture/Arabescato_texture.jpg'
|
|
565
575
|
}
|
|
566
576
|
};
|
|
567
577
|
setExternalEvent(evt);
|
|
@@ -573,7 +583,7 @@ function WorkSpace(props) {
|
|
|
573
583
|
type: EXTERNAL_EVENT_SET_FINISHING,
|
|
574
584
|
payload: {
|
|
575
585
|
category: FINISHING_TYPE.BACKSPLASH,
|
|
576
|
-
texture:
|
|
586
|
+
texture: 'https://media.test.diydesignspace.com/uploads/CountTop/202305225249_14/texture/Unique_Marquina_texture.jpg'
|
|
577
587
|
}
|
|
578
588
|
};
|
|
579
589
|
setExternalEvent(evt);
|
|
@@ -585,7 +595,7 @@ function WorkSpace(props) {
|
|
|
585
595
|
type: EXTERNAL_EVENT_SET_FINISHING,
|
|
586
596
|
payload: {
|
|
587
597
|
category: FINISHING_TYPE.FLOOR_STYLE,
|
|
588
|
-
texture:
|
|
598
|
+
texture: 'https://media.test.diydesignspace.com/uploads/CountTop/202203163338_3/texture/oak-chestnut.webp'
|
|
589
599
|
}
|
|
590
600
|
};
|
|
591
601
|
setExternalEvent(evt);
|
|
@@ -597,7 +607,7 @@ function WorkSpace(props) {
|
|
|
597
607
|
type: EXTERNAL_EVENT_SET_FINISHING,
|
|
598
608
|
payload: {
|
|
599
609
|
category: FINISHING_TYPE.WALL_COLOR,
|
|
600
|
-
color:
|
|
610
|
+
color: '#bab863'
|
|
601
611
|
}
|
|
602
612
|
};
|
|
603
613
|
setExternalEvent(evt);
|
|
@@ -609,7 +619,7 @@ function WorkSpace(props) {
|
|
|
609
619
|
type: EXTERNAL_EVENT_SET_FINISHING,
|
|
610
620
|
payload: {
|
|
611
621
|
category: FINISHING_TYPE.DOOR_HANDLE,
|
|
612
|
-
gltf:
|
|
622
|
+
gltf: 'https://media.test.diydesignspace.com/uploads/DoorHandle/202107294150_29/gltf/Handle1.gltf'
|
|
613
623
|
}
|
|
614
624
|
};
|
|
615
625
|
setExternalEvent(evt);
|
|
@@ -636,7 +646,7 @@ function WorkSpace(props) {
|
|
|
636
646
|
// cm
|
|
637
647
|
_length: 27,
|
|
638
648
|
// inch
|
|
639
|
-
_unit:
|
|
649
|
+
_unit: 'in'
|
|
640
650
|
})
|
|
641
651
|
}
|
|
642
652
|
};
|
|
@@ -664,7 +674,7 @@ function WorkSpace(props) {
|
|
|
664
674
|
actionType: "danger",
|
|
665
675
|
onClick: function onClick() {
|
|
666
676
|
var _tl = Math.floor(Math.random() * 50);
|
|
667
|
-
var tl = convert(_tl).from(
|
|
677
|
+
var tl = convert(_tl).from('in').to('cm');
|
|
668
678
|
var evt = {
|
|
669
679
|
type: EXTERNAL_EVENT_UPDATE_PROPERTY,
|
|
670
680
|
payload: {
|
|
@@ -672,7 +682,7 @@ function WorkSpace(props) {
|
|
|
672
682
|
value: new Map({
|
|
673
683
|
_length: _tl,
|
|
674
684
|
// inch
|
|
675
|
-
_unit:
|
|
685
|
+
_unit: 'in',
|
|
676
686
|
length: tl // cm
|
|
677
687
|
})
|
|
678
688
|
}
|
|
@@ -697,7 +707,7 @@ function WorkSpace(props) {
|
|
|
697
707
|
// externalEvent: { id?, type, payload } | null,
|
|
698
708
|
// meta?: { filename?, lineno?, colno? }
|
|
699
709
|
// }
|
|
700
|
-
console.error(
|
|
710
|
+
console.error('TOOL ERROR:', payload);
|
|
701
711
|
}
|
|
702
712
|
}));
|
|
703
713
|
}
|
|
@@ -708,4 +718,4 @@ ReactDOM.render(/*#__PURE__*/React.createElement(ContainerDimensions, null, func
|
|
|
708
718
|
width: width,
|
|
709
719
|
height: height
|
|
710
720
|
});
|
|
711
|
-
}), document.getElementById(
|
|
721
|
+
}), document.getElementById('app') && document.getElementById('app'));
|
package/es/utils/geometry.js
CHANGED
|
@@ -2459,31 +2459,13 @@ function getCalcRectFromItem2(itemInfo) {
|
|
|
2459
2459
|
var m3y = y + h * Math.cos(rotRad);
|
|
2460
2460
|
var m1x = x + h * Math.sin(rotRad);
|
|
2461
2461
|
var m1y = y - h * Math.cos(rotRad);
|
|
2462
|
-
var x0 = mx + h * Math.sin(rotRad);
|
|
2463
|
-
var y0 = my - h * Math.cos(rotRad);
|
|
2464
|
-
var x3 = mx * 2 - x0;
|
|
2465
|
-
var y3 = my * 2 - y0;
|
|
2466
|
-
var x1 = x * 2 - x3;
|
|
2467
|
-
var y1 = y * 2 - y3;
|
|
2468
|
-
var x2 = x * 2 - x0;
|
|
2469
|
-
var y2 = y * 2 - y0;
|
|
2470
2462
|
return {
|
|
2471
2463
|
rectCenterPoint: [[point(mx, my), 180], [point(m1x, m1y), -90], [point(m2x, m2y), 0], [point(m3x, m3y), 90]]
|
|
2472
2464
|
};
|
|
2473
2465
|
}
|
|
2474
|
-
function getAllItems2(
|
|
2466
|
+
function getAllItems2(curItem, layer) {
|
|
2475
2467
|
var rectarray = [];
|
|
2476
|
-
var
|
|
2477
|
-
var selectedItem;
|
|
2478
|
-
if (layer.selected.items.size > 0) {
|
|
2479
|
-
selectedItem = layer.getIn(['items', layer.selected.items.get(0)]);
|
|
2480
|
-
var catid = selectedItem.type;
|
|
2481
|
-
var cat = findCatalogElement(catalog, catid);
|
|
2482
|
-
currentItem = {
|
|
2483
|
-
selectedItem: selectedItem,
|
|
2484
|
-
cat: cat
|
|
2485
|
-
};
|
|
2486
|
-
}
|
|
2468
|
+
var tempHeight = curItem.get('properties').get('depth');
|
|
2487
2469
|
layer.items.forEach(function (item) {
|
|
2488
2470
|
var val = {
|
|
2489
2471
|
pos: {
|
|
@@ -2492,27 +2474,14 @@ function getAllItems2(layer, catalog) {
|
|
|
2492
2474
|
},
|
|
2493
2475
|
rotRad: item.rotation / 180 * Math.PI
|
|
2494
2476
|
};
|
|
2495
|
-
var catid = item.type;
|
|
2496
|
-
var cat = findCatalogElement(catalog, catid);
|
|
2497
2477
|
var width = convert(item.properties.getIn(['width', '_length'])).from('in').to('cm');
|
|
2498
2478
|
var height = convert(item.properties.getIn(['depth', '_length'])).from('in').to('cm');
|
|
2499
|
-
// let width = cat.info.sizeinfo.width;
|
|
2500
|
-
// let height = cat.info.sizeinfo.depth;
|
|
2501
2479
|
val.size = {
|
|
2502
2480
|
width: width,
|
|
2503
2481
|
height: height
|
|
2504
2482
|
};
|
|
2505
|
-
|
|
2506
|
-
item: item,
|
|
2507
|
-
cat: cat
|
|
2508
|
-
};
|
|
2509
|
-
|
|
2510
|
-
// if (!GeometryUtils.needSnap(currentItem, otherItem)) {
|
|
2511
|
-
// return;
|
|
2512
|
-
// }
|
|
2513
|
-
|
|
2514
|
-
if (!item.selected) {
|
|
2515
|
-
var detectObjectsAtSameAltitudeFlag = layoutpos === 'Base' ? item.properties.getIn(['altitude', '_length']) <= altitude + tempHeight.get('_length') : item.properties.getIn(['altitude', '_length']) + item.properties.getIn(['height', '_length']) >= altitude;
|
|
2483
|
+
if (curItem.get('id') !== item.id) {
|
|
2484
|
+
var detectObjectsAtSameAltitudeFlag = curItem.get('layoutpos') === 'Base' ? item.properties.getIn(['altitude', '_length']) <= curItem.get('properties').getIn(['altitude', '_length']) + tempHeight.get('_length') : item.properties.getIn(['altitude', '_length']) + item.properties.getIn(['height', '_length']) >= curItem.get('properties').getIn(['altitude', '_length']);
|
|
2516
2485
|
if (detectObjectsAtSameAltitudeFlag) {
|
|
2517
2486
|
var x = val.pos.x;
|
|
2518
2487
|
var y = val.pos.y;
|
|
@@ -2544,67 +2513,27 @@ function getAllItems2(layer, catalog) {
|
|
|
2544
2513
|
}
|
|
2545
2514
|
}
|
|
2546
2515
|
});
|
|
2547
|
-
|
|
2548
|
-
// layer.holes.forEach(hole => {
|
|
2549
|
-
// let val = {pos:{x:hole.x, y:hole.y}, rotRad:hole.rotation};
|
|
2550
|
-
// let catid = hole.type;
|
|
2551
|
-
// let cat = catalog.elements[catid];
|
|
2552
|
-
// let width = hole.properties.getIn(['width']).getIn(['length']);
|
|
2553
|
-
// let height = hole.properties.getIn(['height']).getIn(['length']);
|
|
2554
|
-
// val.size = {width, height};
|
|
2555
|
-
// let otherItem = {
|
|
2556
|
-
// hole,
|
|
2557
|
-
// cat
|
|
2558
|
-
// }
|
|
2559
|
-
|
|
2560
|
-
// // if (!GeometryUtils.needSnap(currentItem, otherItem)) {
|
|
2561
|
-
// // return;
|
|
2562
|
-
// // }
|
|
2563
|
-
|
|
2564
|
-
// if (!hole.selected) {
|
|
2565
|
-
// let x = val.pos.x;
|
|
2566
|
-
// let y = val.pos.y;
|
|
2567
|
-
// let rotRad = val.rotRad;
|
|
2568
|
-
// let w = val.size.width / 2;
|
|
2569
|
-
// let mx = x - w * Math.cos(rotRad);
|
|
2570
|
-
// let my = y - w * Math.sin(rotRad);
|
|
2571
|
-
// let kx = x + w * Math.cos(rotRad);
|
|
2572
|
-
// let ky = y + w * Math.sin(rotRad);
|
|
2573
|
-
// let x0 = mx - 10 * Math.sin(rotRad);
|
|
2574
|
-
// let y0 = my + 10 * Math.cos(rotRad);
|
|
2575
|
-
// let x3 = mx + 10 * Math.sin(rotRad);
|
|
2576
|
-
// let y3 = my - 10 * Math.cos(rotRad);
|
|
2577
|
-
// let x1 = kx - 10 * Math.sin(rotRad);
|
|
2578
|
-
// let y1 = ky + 10 * Math.cos(rotRad);
|
|
2579
|
-
// let x2 = kx + 10 * Math.sin(rotRad);
|
|
2580
|
-
// let y2 = ky - 10 * Math.cos(rotRad);
|
|
2581
|
-
// rectarray.push({'rect':[point(x0,y0), point(x1,y1) ,point(x0,y0), point(x1,y1)]});
|
|
2582
|
-
// rectarray.push({'rect':[point(x1,y1), point(x2,y2), point(x1,y1), point(x2,y2)]}); // right
|
|
2583
|
-
// rectarray.push({'rect':[point(x2,y2), point(x3,y3), point(x2,y2), point(x3,y3)]}); // front
|
|
2584
|
-
// rectarray.push({'rect':[point(x3,y3), point(x0,y0), point(x3,y3), point(x0,y0)]}); // left
|
|
2585
|
-
// }
|
|
2586
|
-
// });
|
|
2587
2516
|
return {
|
|
2588
2517
|
others: rectarray
|
|
2589
2518
|
};
|
|
2590
2519
|
}
|
|
2591
|
-
export function calcDistancesFromItemToWalls(
|
|
2592
|
-
if (isEmpty(
|
|
2593
|
-
var x =
|
|
2594
|
-
var y =
|
|
2595
|
-
var rotRad =
|
|
2520
|
+
export function calcDistancesFromItemToWalls(curItem, layer) {
|
|
2521
|
+
if (isEmpty(curItem)) return [];
|
|
2522
|
+
var x = curItem.get('x');
|
|
2523
|
+
var y = curItem.get('y');
|
|
2524
|
+
var rotRad = curItem.get('rotation') / 180 * Math.PI;
|
|
2596
2525
|
var width, height;
|
|
2597
|
-
if (
|
|
2598
|
-
width = convert(
|
|
2599
|
-
height = convert(
|
|
2526
|
+
if (curItem.get('properties').get('width') || curItem.get('properties').get('depth')) {
|
|
2527
|
+
width = convert(curItem.get('properties').get('width').get('_length')).from(curItem.get('properties').get('width').get('_unit')).to('cm');
|
|
2528
|
+
height = convert(curItem.get('properties').get('depth').get('_length')).from(curItem.get('properties').get('depth').get('_unit')).to('cm');
|
|
2600
2529
|
} else {
|
|
2601
|
-
width = convert(
|
|
2602
|
-
height = convert(
|
|
2530
|
+
width = convert(curItem.info.sizeinfo.width).from('in').to('cm');
|
|
2531
|
+
height = convert(curItem.info.sizeinfo.depth).from('in').to('cm');
|
|
2603
2532
|
}
|
|
2604
2533
|
var center_h = 3 * height / 8;
|
|
2605
|
-
var center_x = x;
|
|
2534
|
+
var center_x = x; // middle of front line of cabinet rect
|
|
2606
2535
|
var center_y = y;
|
|
2607
|
-
var center_x1 = x - center_h * Math.sin(rotRad);
|
|
2536
|
+
var center_x1 = x - center_h * Math.sin(rotRad); // center point of cabinet rect
|
|
2608
2537
|
var center_y1 = y + center_h * Math.cos(rotRad);
|
|
2609
2538
|
var PointArray = [];
|
|
2610
2539
|
var itemInfo = {
|
|
@@ -2619,24 +2548,37 @@ export function calcDistancesFromItemToWalls(attributesFormData, layer, catalog)
|
|
|
2619
2548
|
height: height
|
|
2620
2549
|
};
|
|
2621
2550
|
var curiteminfo = getCalcRectFromItem2(itemInfo);
|
|
2622
|
-
var allItemRect = getAllItems2(
|
|
2551
|
+
var allItemRect = getAllItems2(curItem, layer);
|
|
2623
2552
|
var allLines = getAllLines(layer);
|
|
2624
2553
|
var allLineRects = buildRectFromLines(layer, allLines);
|
|
2625
2554
|
var allRect = allLineRects.concat(allItemRect.others);
|
|
2626
|
-
|
|
2627
|
-
|
|
2555
|
+
var _loop = function _loop(i) {
|
|
2556
|
+
// [rectCenterPoint] has four middle points of cabinet rect edges
|
|
2557
|
+
var centerpoint = curiteminfo.rectCenterPoint[i];
|
|
2558
|
+
var comparelength = []; // distance array from rectCenterPoint[i] to other lines(walls, other cabinet rect edges)
|
|
2628
2559
|
var a;
|
|
2629
|
-
var RectLineFuction;
|
|
2560
|
+
var RectLineFuction; // normal line of cabinet rect edge
|
|
2630
2561
|
if (centerpoint[1] === 180 || centerpoint[1] === 0) RectLineFuction = linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x1, center_y1);else RectLineFuction = linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x, center_y);
|
|
2631
2562
|
allRect.forEach(function (linerect) {
|
|
2563
|
+
// calc distance to all other lines
|
|
2632
2564
|
var p0 = clone_point(linerect.rect[2]);
|
|
2633
2565
|
var p1 = clone_point(linerect.rect[3]);
|
|
2634
|
-
var lineFunction = {};
|
|
2566
|
+
var lineFunction = {}; // other line function
|
|
2635
2567
|
if (p0.x !== p1.x || p0.y !== p1.y) lineFunction = linePassingThroughTwoPoints(p0.x, p0.y, p1.x, p1.y);
|
|
2568
|
+
// intersection between normal line and other line
|
|
2636
2569
|
var coordinatePoint = twoLinesIntersection(lineFunction.a, lineFunction.b, lineFunction.c, RectLineFuction.a, RectLineFuction.b, RectLineFuction.c);
|
|
2637
2570
|
if (coordinatePoint !== undefined) {
|
|
2638
|
-
if (
|
|
2639
|
-
|
|
2571
|
+
if (
|
|
2572
|
+
// intersection point is on the other line
|
|
2573
|
+
pointsDistance(p0.x, p0.y, p1.x, p1.y) > pointsDistance(p0.x, p0.y, coordinatePoint.x, coordinatePoint.y) && pointsDistance(p0.x, p0.y, p1.x, p1.y) > pointsDistance(p1.x, p1.y, coordinatePoint.x, coordinatePoint.y)) {
|
|
2574
|
+
// check the intersection point is outside direction of edge
|
|
2575
|
+
var isOutside = true;
|
|
2576
|
+
for (var j = 0; j < curiteminfo.rectCenterPoint.length; j++) {
|
|
2577
|
+
if (j === i) continue;
|
|
2578
|
+
var otherCenterPoint = curiteminfo.rectCenterPoint[j];
|
|
2579
|
+
if (isPointOnLineSegment(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y, otherCenterPoint[0].x, otherCenterPoint[0].y)) isOutside = false;
|
|
2580
|
+
}
|
|
2581
|
+
if (isOutside && pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
|
|
2640
2582
|
comparelength.push(pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y));
|
|
2641
2583
|
a = Math.min.apply(null, comparelength);
|
|
2642
2584
|
}
|
|
@@ -2644,7 +2586,21 @@ export function calcDistancesFromItemToWalls(attributesFormData, layer, catalog)
|
|
|
2644
2586
|
}
|
|
2645
2587
|
});
|
|
2646
2588
|
PointArray.push([a, centerpoint[1]]);
|
|
2589
|
+
};
|
|
2590
|
+
for (var i = 0; i < curiteminfo.rectCenterPoint.length; i++) {
|
|
2591
|
+
_loop(i);
|
|
2592
|
+
}
|
|
2593
|
+
PointArray.forEach(function (pointElement, index) {
|
|
2594
|
+
if (pointElement[0] == undefined) PointArray[index][0] = 0;
|
|
2647
2595
|
});
|
|
2596
|
+
var cnt = 0;
|
|
2597
|
+
PointArray.forEach(function (pointElement) {
|
|
2598
|
+
if (pointElement[0] == 0) cnt++;
|
|
2599
|
+
});
|
|
2600
|
+
if (cnt == 4 || cnt == 3) {
|
|
2601
|
+
PointArray[0][0] = 100;
|
|
2602
|
+
PointArray[1][0] = 100;
|
|
2603
|
+
}
|
|
2648
2604
|
return {
|
|
2649
2605
|
PointArray: PointArray
|
|
2650
2606
|
};
|