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/lib/devLiteRenderer.js
CHANGED
|
@@ -11,6 +11,7 @@ var _reactContainerDimensions = _interopRequireDefault(require("react-container-
|
|
|
11
11
|
var _projectItemsCatalog = _interopRequireDefault(require("./mocks/projectItemsCatalog.json"));
|
|
12
12
|
var _mockProps = _interopRequireDefault(require("./mocks/mockProps.json"));
|
|
13
13
|
var _cabinetPayload = _interopRequireDefault(require("./mocks/cabinetPayload2.json"));
|
|
14
|
+
var _cabinetPayload2 = _interopRequireDefault(require("./mocks/cabinetPayload.json"));
|
|
14
15
|
var _appliancePayload = _interopRequireDefault(require("./mocks/appliancePayload.json"));
|
|
15
16
|
var _doorStylePayload = _interopRequireDefault(require("./mocks/doorStylePayload2.json"));
|
|
16
17
|
var _roomShapePayload = _interopRequireDefault(require("./mocks/roomShapePayload.json"));
|
|
@@ -28,7 +29,7 @@ var _convertUnitsLite = require("./utils/convert-units-lite");
|
|
|
28
29
|
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 _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
29
30
|
// --- renderer props ---
|
|
30
31
|
var options = {
|
|
31
|
-
unit:
|
|
32
|
+
unit: 'in',
|
|
32
33
|
enable3D: true
|
|
33
34
|
};
|
|
34
35
|
var onInternalEvent = /*#__PURE__*/function () {
|
|
@@ -37,7 +38,7 @@ var onInternalEvent = /*#__PURE__*/function () {
|
|
|
37
38
|
return _regenerator["default"].wrap(function (_context) {
|
|
38
39
|
while (1) switch (_context.prev = _context.next) {
|
|
39
40
|
case 0:
|
|
40
|
-
console.log(
|
|
41
|
+
console.log('EVENT:', evt.type, evt.value);
|
|
41
42
|
_t = evt.type;
|
|
42
43
|
_context.next = _t === _constants.INTERNAL_EVENT_ITEMS_CATALOG ? 1 : 3;
|
|
43
44
|
break;
|
|
@@ -56,7 +57,7 @@ var onInternalEvent = /*#__PURE__*/function () {
|
|
|
56
57
|
return _ref.apply(this, arguments);
|
|
57
58
|
};
|
|
58
59
|
}();
|
|
59
|
-
document.getElementById(
|
|
60
|
+
document.getElementById('app').style.display = 'block';
|
|
60
61
|
function WorkSpace(props) {
|
|
61
62
|
var _useState = (0, _react.useState)(null),
|
|
62
63
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
@@ -218,6 +219,15 @@ function WorkSpace(props) {
|
|
|
218
219
|
setExternalEvent(evt);
|
|
219
220
|
}
|
|
220
221
|
}, "Add B12 Cabinet"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
222
|
+
actionType: "danger",
|
|
223
|
+
onClick: function onClick() {
|
|
224
|
+
var evt = {
|
|
225
|
+
type: _constants.EXTERNAL_EVENT_ADD_ITEM,
|
|
226
|
+
payload: _cabinetPayload2["default"]
|
|
227
|
+
};
|
|
228
|
+
setExternalEvent(evt);
|
|
229
|
+
}
|
|
230
|
+
}, "Add W0930 Cabinet"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
221
231
|
actionType: "danger",
|
|
222
232
|
onClick: function onClick() {
|
|
223
233
|
var evt = {
|
|
@@ -236,91 +246,91 @@ function WorkSpace(props) {
|
|
|
236
246
|
var evt = {
|
|
237
247
|
type: _constants.EXTERNAL_EVENT_ADD_ROOM_SHAPE,
|
|
238
248
|
payload: {
|
|
239
|
-
roomShapeType:
|
|
249
|
+
roomShapeType: 'rectangle',
|
|
240
250
|
width: 250,
|
|
241
251
|
height: 100,
|
|
242
252
|
doorStyle: {
|
|
243
253
|
id: 36,
|
|
244
|
-
type:
|
|
245
|
-
name:
|
|
246
|
-
thumbnail:
|
|
247
|
-
texture:
|
|
248
|
-
color:
|
|
254
|
+
type: 'door',
|
|
255
|
+
name: 'Brilliant White Shaker',
|
|
256
|
+
thumbnail: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/thumbnail/Brilliant%20White%20Shaker%20-%20RTA.jpg',
|
|
257
|
+
texture: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
258
|
+
color: '#ffffff',
|
|
249
259
|
glossness: 1,
|
|
250
260
|
door_style_id: 42,
|
|
251
261
|
brightness: 1,
|
|
252
|
-
sku:
|
|
253
|
-
color_family:
|
|
254
|
-
color_sku_alias:
|
|
255
|
-
door_style_name:
|
|
256
|
-
install:
|
|
262
|
+
sku: 'SW',
|
|
263
|
+
color_family: ',10,',
|
|
264
|
+
color_sku_alias: 'SW',
|
|
265
|
+
door_style_name: 'Shaker',
|
|
266
|
+
install: '',
|
|
257
267
|
doorStyles: {
|
|
258
|
-
base:
|
|
259
|
-
counttop:
|
|
260
|
-
interior:
|
|
261
|
-
base_door_1:
|
|
262
|
-
base_fixed_drawer_door_1:
|
|
263
|
-
base_drawer_1:
|
|
264
|
-
base_drawer_door_1:
|
|
265
|
-
door_handle_1:
|
|
266
|
-
fixed_drawer_door_handle_1:
|
|
267
|
-
drawer_door_handle_1:
|
|
268
|
-
base_door_2:
|
|
269
|
-
base_fixed_drawer_door_2:
|
|
270
|
-
base_drawer_2:
|
|
271
|
-
base_drawer_door_2:
|
|
272
|
-
door_handle_2:
|
|
273
|
-
fixed_drawer_door_handle_2:
|
|
274
|
-
drawer_door_handle_2:
|
|
275
|
-
base_door_3:
|
|
276
|
-
base_fixed_drawer_door_3:
|
|
277
|
-
base_drawer_3:
|
|
278
|
-
base_drawer_door_3:
|
|
279
|
-
door_handle_3:
|
|
280
|
-
fixed_drawer_door_handle_3:
|
|
281
|
-
drawer_door_handle_3:
|
|
282
|
-
base_door_4:
|
|
283
|
-
base_fixed_drawer_door_4:
|
|
284
|
-
base_drawer_4:
|
|
285
|
-
base_drawer_door_4:
|
|
286
|
-
door_handle_4:
|
|
287
|
-
fixed_drawer_door_handle_4:
|
|
288
|
-
drawer_door_handle_4:
|
|
289
|
-
base_door_5:
|
|
290
|
-
base_fixed_drawer_door_5:
|
|
291
|
-
base_drawer_5:
|
|
292
|
-
base_drawer_door_5:
|
|
293
|
-
door_handle_5:
|
|
294
|
-
fixed_drawer_door_handle_5:
|
|
295
|
-
drawer_door_handle_5:
|
|
296
|
-
base_door_6:
|
|
297
|
-
base_fixed_drawer_door_6:
|
|
298
|
-
base_drawer_6:
|
|
299
|
-
base_drawer_door_6:
|
|
300
|
-
door_handle_6:
|
|
301
|
-
fixed_drawer_door_handle_6:
|
|
302
|
-
drawer_door_handle_6:
|
|
303
|
-
base_door_7:
|
|
304
|
-
base_fixed_drawer_door_7:
|
|
305
|
-
base_drawer_7:
|
|
306
|
-
base_drawer_door_7:
|
|
307
|
-
door_handle_7:
|
|
308
|
-
fixed_drawer_door_handle_7:
|
|
309
|
-
drawer_door_handle_7:
|
|
310
|
-
base_door_8:
|
|
311
|
-
base_fixed_drawer_door_8:
|
|
312
|
-
base_drawer_8:
|
|
313
|
-
base_drawer_door_8:
|
|
314
|
-
door_handle_8:
|
|
315
|
-
fixed_drawer_door_handle_8:
|
|
316
|
-
drawer_door_handle_8:
|
|
317
|
-
base_door_9:
|
|
318
|
-
base_fixed_drawer_door_9:
|
|
319
|
-
base_drawer_9:
|
|
320
|
-
base_drawer_door_9:
|
|
321
|
-
door_handle_9:
|
|
322
|
-
fixed_drawer_door_handle_9:
|
|
323
|
-
drawer_door_handle_9:
|
|
268
|
+
base: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
269
|
+
counttop: 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg',
|
|
270
|
+
interior: 'https://media.test.diydesignspace.com/uploads/assets/default/maple.jpg',
|
|
271
|
+
base_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
272
|
+
base_fixed_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
273
|
+
base_drawer_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
274
|
+
base_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
275
|
+
door_handle_1: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
276
|
+
fixed_drawer_door_handle_1: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
277
|
+
drawer_door_handle_1: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
278
|
+
base_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
279
|
+
base_fixed_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
280
|
+
base_drawer_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
281
|
+
base_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
282
|
+
door_handle_2: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
283
|
+
fixed_drawer_door_handle_2: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
284
|
+
drawer_door_handle_2: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
285
|
+
base_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
286
|
+
base_fixed_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
287
|
+
base_drawer_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
288
|
+
base_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
289
|
+
door_handle_3: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
290
|
+
fixed_drawer_door_handle_3: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
291
|
+
drawer_door_handle_3: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
292
|
+
base_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
293
|
+
base_fixed_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
294
|
+
base_drawer_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
295
|
+
base_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
296
|
+
door_handle_4: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
297
|
+
fixed_drawer_door_handle_4: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
298
|
+
drawer_door_handle_4: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
299
|
+
base_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
300
|
+
base_fixed_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
301
|
+
base_drawer_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
302
|
+
base_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
303
|
+
door_handle_5: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
304
|
+
fixed_drawer_door_handle_5: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
305
|
+
drawer_door_handle_5: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
306
|
+
base_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
307
|
+
base_fixed_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
308
|
+
base_drawer_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
309
|
+
base_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
310
|
+
door_handle_6: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
311
|
+
fixed_drawer_door_handle_6: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
312
|
+
drawer_door_handle_6: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
313
|
+
base_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
314
|
+
base_fixed_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
315
|
+
base_drawer_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
316
|
+
base_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
317
|
+
door_handle_7: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
318
|
+
fixed_drawer_door_handle_7: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
319
|
+
drawer_door_handle_7: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
320
|
+
base_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
321
|
+
base_fixed_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
322
|
+
base_drawer_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
323
|
+
base_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
324
|
+
door_handle_8: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
325
|
+
fixed_drawer_door_handle_8: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
326
|
+
drawer_door_handle_8: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
327
|
+
base_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
328
|
+
base_fixed_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
329
|
+
base_drawer_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
330
|
+
base_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
331
|
+
door_handle_9: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
332
|
+
fixed_drawer_door_handle_9: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg',
|
|
333
|
+
drawer_door_handle_9: 'https://media.test.diydesignspace.com/uploads/assets/default/steel.jpg'
|
|
324
334
|
},
|
|
325
335
|
installation_types: [125, 124]
|
|
326
336
|
}
|
|
@@ -479,7 +489,7 @@ function WorkSpace(props) {
|
|
|
479
489
|
// cm
|
|
480
490
|
_length: 10,
|
|
481
491
|
// inch
|
|
482
|
-
_unit:
|
|
492
|
+
_unit: 'in'
|
|
483
493
|
})
|
|
484
494
|
}
|
|
485
495
|
};
|
|
@@ -492,7 +502,7 @@ function WorkSpace(props) {
|
|
|
492
502
|
type: _constants.EXTERNAL_EVENT_DUPLICATE_ELEMENT,
|
|
493
503
|
payload: {
|
|
494
504
|
elementPrototype: _constants.ELEMENT_ITEM,
|
|
495
|
-
elementId:
|
|
505
|
+
elementId: '' // id of current operating element
|
|
496
506
|
}
|
|
497
507
|
};
|
|
498
508
|
setExternalEvent(evt);
|
|
@@ -504,7 +514,7 @@ function WorkSpace(props) {
|
|
|
504
514
|
type: _constants.EXTERNAL_EVENT_DELETE_ELEMENT,
|
|
505
515
|
payload: {
|
|
506
516
|
elementPrototype: _constants.ELEMENT_ITEM,
|
|
507
|
-
elementId:
|
|
517
|
+
elementId: '' // id of current operating element
|
|
508
518
|
}
|
|
509
519
|
};
|
|
510
520
|
setExternalEvent(evt);
|
|
@@ -565,7 +575,7 @@ function WorkSpace(props) {
|
|
|
565
575
|
type: _constants.EXTERNAL_EVENT_SET_FINISHING,
|
|
566
576
|
payload: {
|
|
567
577
|
category: _constants.FINISHING_TYPE.COUNTER_TOP,
|
|
568
|
-
texture:
|
|
578
|
+
texture: 'https://media.test.diydesignspace.com/uploads/CountTop/202111302746_7/texture/Arabescato_texture.jpg'
|
|
569
579
|
}
|
|
570
580
|
};
|
|
571
581
|
setExternalEvent(evt);
|
|
@@ -577,7 +587,7 @@ function WorkSpace(props) {
|
|
|
577
587
|
type: _constants.EXTERNAL_EVENT_SET_FINISHING,
|
|
578
588
|
payload: {
|
|
579
589
|
category: _constants.FINISHING_TYPE.BACKSPLASH,
|
|
580
|
-
texture:
|
|
590
|
+
texture: 'https://media.test.diydesignspace.com/uploads/CountTop/202305225249_14/texture/Unique_Marquina_texture.jpg'
|
|
581
591
|
}
|
|
582
592
|
};
|
|
583
593
|
setExternalEvent(evt);
|
|
@@ -589,7 +599,7 @@ function WorkSpace(props) {
|
|
|
589
599
|
type: _constants.EXTERNAL_EVENT_SET_FINISHING,
|
|
590
600
|
payload: {
|
|
591
601
|
category: _constants.FINISHING_TYPE.FLOOR_STYLE,
|
|
592
|
-
texture:
|
|
602
|
+
texture: 'https://media.test.diydesignspace.com/uploads/CountTop/202203163338_3/texture/oak-chestnut.webp'
|
|
593
603
|
}
|
|
594
604
|
};
|
|
595
605
|
setExternalEvent(evt);
|
|
@@ -601,7 +611,7 @@ function WorkSpace(props) {
|
|
|
601
611
|
type: _constants.EXTERNAL_EVENT_SET_FINISHING,
|
|
602
612
|
payload: {
|
|
603
613
|
category: _constants.FINISHING_TYPE.WALL_COLOR,
|
|
604
|
-
color:
|
|
614
|
+
color: '#bab863'
|
|
605
615
|
}
|
|
606
616
|
};
|
|
607
617
|
setExternalEvent(evt);
|
|
@@ -613,7 +623,7 @@ function WorkSpace(props) {
|
|
|
613
623
|
type: _constants.EXTERNAL_EVENT_SET_FINISHING,
|
|
614
624
|
payload: {
|
|
615
625
|
category: _constants.FINISHING_TYPE.DOOR_HANDLE,
|
|
616
|
-
gltf:
|
|
626
|
+
gltf: 'https://media.test.diydesignspace.com/uploads/DoorHandle/202107294150_29/gltf/Handle1.gltf'
|
|
617
627
|
}
|
|
618
628
|
};
|
|
619
629
|
setExternalEvent(evt);
|
|
@@ -640,7 +650,7 @@ function WorkSpace(props) {
|
|
|
640
650
|
// cm
|
|
641
651
|
_length: 27,
|
|
642
652
|
// inch
|
|
643
|
-
_unit:
|
|
653
|
+
_unit: 'in'
|
|
644
654
|
})
|
|
645
655
|
}
|
|
646
656
|
};
|
|
@@ -668,7 +678,7 @@ function WorkSpace(props) {
|
|
|
668
678
|
actionType: "danger",
|
|
669
679
|
onClick: function onClick() {
|
|
670
680
|
var _tl = Math.floor(Math.random() * 50);
|
|
671
|
-
var tl = (0, _convertUnitsLite.convert)(_tl).from(
|
|
681
|
+
var tl = (0, _convertUnitsLite.convert)(_tl).from('in').to('cm');
|
|
672
682
|
var evt = {
|
|
673
683
|
type: _constants.EXTERNAL_EVENT_UPDATE_PROPERTY,
|
|
674
684
|
payload: {
|
|
@@ -676,7 +686,7 @@ function WorkSpace(props) {
|
|
|
676
686
|
value: new _immutable.Map({
|
|
677
687
|
_length: _tl,
|
|
678
688
|
// inch
|
|
679
|
-
_unit:
|
|
689
|
+
_unit: 'in',
|
|
680
690
|
length: tl // cm
|
|
681
691
|
})
|
|
682
692
|
}
|
|
@@ -701,7 +711,7 @@ function WorkSpace(props) {
|
|
|
701
711
|
// externalEvent: { id?, type, payload } | null,
|
|
702
712
|
// meta?: { filename?, lineno?, colno? }
|
|
703
713
|
// }
|
|
704
|
-
console.error(
|
|
714
|
+
console.error('TOOL ERROR:', payload);
|
|
705
715
|
}
|
|
706
716
|
}));
|
|
707
717
|
}
|
|
@@ -712,4 +722,4 @@ _reactDom["default"].render(/*#__PURE__*/_react["default"].createElement(_reactC
|
|
|
712
722
|
width: width,
|
|
713
723
|
height: height
|
|
714
724
|
});
|
|
715
|
-
}), document.getElementById(
|
|
725
|
+
}), document.getElementById('app') && document.getElementById('app'));
|
package/lib/utils/geometry.js
CHANGED
|
@@ -2559,31 +2559,13 @@ function getCalcRectFromItem2(itemInfo) {
|
|
|
2559
2559
|
var m3y = y + h * Math.cos(rotRad);
|
|
2560
2560
|
var m1x = x + h * Math.sin(rotRad);
|
|
2561
2561
|
var m1y = y - h * Math.cos(rotRad);
|
|
2562
|
-
var x0 = mx + h * Math.sin(rotRad);
|
|
2563
|
-
var y0 = my - h * Math.cos(rotRad);
|
|
2564
|
-
var x3 = mx * 2 - x0;
|
|
2565
|
-
var y3 = my * 2 - y0;
|
|
2566
|
-
var x1 = x * 2 - x3;
|
|
2567
|
-
var y1 = y * 2 - y3;
|
|
2568
|
-
var x2 = x * 2 - x0;
|
|
2569
|
-
var y2 = y * 2 - y0;
|
|
2570
2562
|
return {
|
|
2571
2563
|
rectCenterPoint: [[point(mx, my), 180], [point(m1x, m1y), -90], [point(m2x, m2y), 0], [point(m3x, m3y), 90]]
|
|
2572
2564
|
};
|
|
2573
2565
|
}
|
|
2574
|
-
function getAllItems2(
|
|
2566
|
+
function getAllItems2(curItem, layer) {
|
|
2575
2567
|
var rectarray = [];
|
|
2576
|
-
var
|
|
2577
|
-
var selectedItem;
|
|
2578
|
-
if (layer.selected.items.size > 0) {
|
|
2579
|
-
selectedItem = layer.getIn(['items', layer.selected.items.get(0)]);
|
|
2580
|
-
var catid = selectedItem.type;
|
|
2581
|
-
var cat = findCatalogElement(catalog, catid);
|
|
2582
|
-
currentItem = {
|
|
2583
|
-
selectedItem: selectedItem,
|
|
2584
|
-
cat: cat
|
|
2585
|
-
};
|
|
2586
|
-
}
|
|
2568
|
+
var tempHeight = curItem.get('properties').get('depth');
|
|
2587
2569
|
layer.items.forEach(function (item) {
|
|
2588
2570
|
var val = {
|
|
2589
2571
|
pos: {
|
|
@@ -2592,27 +2574,14 @@ function getAllItems2(layer, catalog) {
|
|
|
2592
2574
|
},
|
|
2593
2575
|
rotRad: item.rotation / 180 * Math.PI
|
|
2594
2576
|
};
|
|
2595
|
-
var catid = item.type;
|
|
2596
|
-
var cat = findCatalogElement(catalog, catid);
|
|
2597
2577
|
var width = (0, _convertUnitsLite.convert)(item.properties.getIn(['width', '_length'])).from('in').to('cm');
|
|
2598
2578
|
var height = (0, _convertUnitsLite.convert)(item.properties.getIn(['depth', '_length'])).from('in').to('cm');
|
|
2599
|
-
// let width = cat.info.sizeinfo.width;
|
|
2600
|
-
// let height = cat.info.sizeinfo.depth;
|
|
2601
2579
|
val.size = {
|
|
2602
2580
|
width: width,
|
|
2603
2581
|
height: height
|
|
2604
2582
|
};
|
|
2605
|
-
|
|
2606
|
-
item: item,
|
|
2607
|
-
cat: cat
|
|
2608
|
-
};
|
|
2609
|
-
|
|
2610
|
-
// if (!GeometryUtils.needSnap(currentItem, otherItem)) {
|
|
2611
|
-
// return;
|
|
2612
|
-
// }
|
|
2613
|
-
|
|
2614
|
-
if (!item.selected) {
|
|
2615
|
-
var detectObjectsAtSameAltitudeFlag = layoutpos === 'Base' ? item.properties.getIn(['altitude', '_length']) <= altitude + tempHeight.get('_length') : item.properties.getIn(['altitude', '_length']) + item.properties.getIn(['height', '_length']) >= altitude;
|
|
2583
|
+
if (curItem.get('id') !== item.id) {
|
|
2584
|
+
var detectObjectsAtSameAltitudeFlag = curItem.get('layoutpos') === 'Base' ? item.properties.getIn(['altitude', '_length']) <= curItem.get('properties').getIn(['altitude', '_length']) + tempHeight.get('_length') : item.properties.getIn(['altitude', '_length']) + item.properties.getIn(['height', '_length']) >= curItem.get('properties').getIn(['altitude', '_length']);
|
|
2616
2585
|
if (detectObjectsAtSameAltitudeFlag) {
|
|
2617
2586
|
var x = val.pos.x;
|
|
2618
2587
|
var y = val.pos.y;
|
|
@@ -2644,67 +2613,27 @@ function getAllItems2(layer, catalog) {
|
|
|
2644
2613
|
}
|
|
2645
2614
|
}
|
|
2646
2615
|
});
|
|
2647
|
-
|
|
2648
|
-
// layer.holes.forEach(hole => {
|
|
2649
|
-
// let val = {pos:{x:hole.x, y:hole.y}, rotRad:hole.rotation};
|
|
2650
|
-
// let catid = hole.type;
|
|
2651
|
-
// let cat = catalog.elements[catid];
|
|
2652
|
-
// let width = hole.properties.getIn(['width']).getIn(['length']);
|
|
2653
|
-
// let height = hole.properties.getIn(['height']).getIn(['length']);
|
|
2654
|
-
// val.size = {width, height};
|
|
2655
|
-
// let otherItem = {
|
|
2656
|
-
// hole,
|
|
2657
|
-
// cat
|
|
2658
|
-
// }
|
|
2659
|
-
|
|
2660
|
-
// // if (!GeometryUtils.needSnap(currentItem, otherItem)) {
|
|
2661
|
-
// // return;
|
|
2662
|
-
// // }
|
|
2663
|
-
|
|
2664
|
-
// if (!hole.selected) {
|
|
2665
|
-
// let x = val.pos.x;
|
|
2666
|
-
// let y = val.pos.y;
|
|
2667
|
-
// let rotRad = val.rotRad;
|
|
2668
|
-
// let w = val.size.width / 2;
|
|
2669
|
-
// let mx = x - w * Math.cos(rotRad);
|
|
2670
|
-
// let my = y - w * Math.sin(rotRad);
|
|
2671
|
-
// let kx = x + w * Math.cos(rotRad);
|
|
2672
|
-
// let ky = y + w * Math.sin(rotRad);
|
|
2673
|
-
// let x0 = mx - 10 * Math.sin(rotRad);
|
|
2674
|
-
// let y0 = my + 10 * Math.cos(rotRad);
|
|
2675
|
-
// let x3 = mx + 10 * Math.sin(rotRad);
|
|
2676
|
-
// let y3 = my - 10 * Math.cos(rotRad);
|
|
2677
|
-
// let x1 = kx - 10 * Math.sin(rotRad);
|
|
2678
|
-
// let y1 = ky + 10 * Math.cos(rotRad);
|
|
2679
|
-
// let x2 = kx + 10 * Math.sin(rotRad);
|
|
2680
|
-
// let y2 = ky - 10 * Math.cos(rotRad);
|
|
2681
|
-
// rectarray.push({'rect':[point(x0,y0), point(x1,y1) ,point(x0,y0), point(x1,y1)]});
|
|
2682
|
-
// rectarray.push({'rect':[point(x1,y1), point(x2,y2), point(x1,y1), point(x2,y2)]}); // right
|
|
2683
|
-
// rectarray.push({'rect':[point(x2,y2), point(x3,y3), point(x2,y2), point(x3,y3)]}); // front
|
|
2684
|
-
// rectarray.push({'rect':[point(x3,y3), point(x0,y0), point(x3,y3), point(x0,y0)]}); // left
|
|
2685
|
-
// }
|
|
2686
|
-
// });
|
|
2687
2616
|
return {
|
|
2688
2617
|
others: rectarray
|
|
2689
2618
|
};
|
|
2690
2619
|
}
|
|
2691
|
-
function calcDistancesFromItemToWalls(
|
|
2692
|
-
if ((0, _helper.isEmpty)(
|
|
2693
|
-
var x =
|
|
2694
|
-
var y =
|
|
2695
|
-
var rotRad =
|
|
2620
|
+
function calcDistancesFromItemToWalls(curItem, layer) {
|
|
2621
|
+
if ((0, _helper.isEmpty)(curItem)) return [];
|
|
2622
|
+
var x = curItem.get('x');
|
|
2623
|
+
var y = curItem.get('y');
|
|
2624
|
+
var rotRad = curItem.get('rotation') / 180 * Math.PI;
|
|
2696
2625
|
var width, height;
|
|
2697
|
-
if (
|
|
2698
|
-
width = (0, _convertUnitsLite.convert)(
|
|
2699
|
-
height = (0, _convertUnitsLite.convert)(
|
|
2626
|
+
if (curItem.get('properties').get('width') || curItem.get('properties').get('depth')) {
|
|
2627
|
+
width = (0, _convertUnitsLite.convert)(curItem.get('properties').get('width').get('_length')).from(curItem.get('properties').get('width').get('_unit')).to('cm');
|
|
2628
|
+
height = (0, _convertUnitsLite.convert)(curItem.get('properties').get('depth').get('_length')).from(curItem.get('properties').get('depth').get('_unit')).to('cm');
|
|
2700
2629
|
} else {
|
|
2701
|
-
width = (0, _convertUnitsLite.convert)(
|
|
2702
|
-
height = (0, _convertUnitsLite.convert)(
|
|
2630
|
+
width = (0, _convertUnitsLite.convert)(curItem.info.sizeinfo.width).from('in').to('cm');
|
|
2631
|
+
height = (0, _convertUnitsLite.convert)(curItem.info.sizeinfo.depth).from('in').to('cm');
|
|
2703
2632
|
}
|
|
2704
2633
|
var center_h = 3 * height / 8;
|
|
2705
|
-
var center_x = x;
|
|
2634
|
+
var center_x = x; // middle of front line of cabinet rect
|
|
2706
2635
|
var center_y = y;
|
|
2707
|
-
var center_x1 = x - center_h * Math.sin(rotRad);
|
|
2636
|
+
var center_x1 = x - center_h * Math.sin(rotRad); // center point of cabinet rect
|
|
2708
2637
|
var center_y1 = y + center_h * Math.cos(rotRad);
|
|
2709
2638
|
var PointArray = [];
|
|
2710
2639
|
var itemInfo = {
|
|
@@ -2719,24 +2648,37 @@ function calcDistancesFromItemToWalls(attributesFormData, layer, catalog) {
|
|
|
2719
2648
|
height: height
|
|
2720
2649
|
};
|
|
2721
2650
|
var curiteminfo = getCalcRectFromItem2(itemInfo);
|
|
2722
|
-
var allItemRect = getAllItems2(
|
|
2651
|
+
var allItemRect = getAllItems2(curItem, layer);
|
|
2723
2652
|
var allLines = getAllLines(layer);
|
|
2724
2653
|
var allLineRects = buildRectFromLines(layer, allLines);
|
|
2725
2654
|
var allRect = allLineRects.concat(allItemRect.others);
|
|
2726
|
-
|
|
2727
|
-
|
|
2655
|
+
var _loop = function _loop(i) {
|
|
2656
|
+
// [rectCenterPoint] has four middle points of cabinet rect edges
|
|
2657
|
+
var centerpoint = curiteminfo.rectCenterPoint[i];
|
|
2658
|
+
var comparelength = []; // distance array from rectCenterPoint[i] to other lines(walls, other cabinet rect edges)
|
|
2728
2659
|
var a;
|
|
2729
|
-
var RectLineFuction;
|
|
2660
|
+
var RectLineFuction; // normal line of cabinet rect edge
|
|
2730
2661
|
if (centerpoint[1] === 180 || centerpoint[1] === 0) RectLineFuction = linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x1, center_y1);else RectLineFuction = linePassingThroughTwoPoints(centerpoint[0].x, centerpoint[0].y, center_x, center_y);
|
|
2731
2662
|
allRect.forEach(function (linerect) {
|
|
2663
|
+
// calc distance to all other lines
|
|
2732
2664
|
var p0 = clone_point(linerect.rect[2]);
|
|
2733
2665
|
var p1 = clone_point(linerect.rect[3]);
|
|
2734
|
-
var lineFunction = {};
|
|
2666
|
+
var lineFunction = {}; // other line function
|
|
2735
2667
|
if (p0.x !== p1.x || p0.y !== p1.y) lineFunction = linePassingThroughTwoPoints(p0.x, p0.y, p1.x, p1.y);
|
|
2668
|
+
// intersection between normal line and other line
|
|
2736
2669
|
var coordinatePoint = twoLinesIntersection(lineFunction.a, lineFunction.b, lineFunction.c, RectLineFuction.a, RectLineFuction.b, RectLineFuction.c);
|
|
2737
2670
|
if (coordinatePoint !== undefined) {
|
|
2738
|
-
if (
|
|
2739
|
-
|
|
2671
|
+
if (
|
|
2672
|
+
// intersection point is on the other line
|
|
2673
|
+
pointsDistance(p0.x, p0.y, p1.x, p1.y) > pointsDistance(p0.x, p0.y, coordinatePoint.x, coordinatePoint.y) && pointsDistance(p0.x, p0.y, p1.x, p1.y) > pointsDistance(p1.x, p1.y, coordinatePoint.x, coordinatePoint.y)) {
|
|
2674
|
+
// check the intersection point is outside direction of edge
|
|
2675
|
+
var isOutside = true;
|
|
2676
|
+
for (var j = 0; j < curiteminfo.rectCenterPoint.length; j++) {
|
|
2677
|
+
if (j === i) continue;
|
|
2678
|
+
var otherCenterPoint = curiteminfo.rectCenterPoint[j];
|
|
2679
|
+
if (isPointOnLineSegment(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y, otherCenterPoint[0].x, otherCenterPoint[0].y)) isOutside = false;
|
|
2680
|
+
}
|
|
2681
|
+
if (isOutside && pointsDistance(coordinatePoint.x, coordinatePoint.y, center_x, center_y) > pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y)) {
|
|
2740
2682
|
comparelength.push(pointsDistance(centerpoint[0].x, centerpoint[0].y, coordinatePoint.x, coordinatePoint.y));
|
|
2741
2683
|
a = Math.min.apply(null, comparelength);
|
|
2742
2684
|
}
|
|
@@ -2744,7 +2686,21 @@ function calcDistancesFromItemToWalls(attributesFormData, layer, catalog) {
|
|
|
2744
2686
|
}
|
|
2745
2687
|
});
|
|
2746
2688
|
PointArray.push([a, centerpoint[1]]);
|
|
2689
|
+
};
|
|
2690
|
+
for (var i = 0; i < curiteminfo.rectCenterPoint.length; i++) {
|
|
2691
|
+
_loop(i);
|
|
2692
|
+
}
|
|
2693
|
+
PointArray.forEach(function (pointElement, index) {
|
|
2694
|
+
if (pointElement[0] == undefined) PointArray[index][0] = 0;
|
|
2747
2695
|
});
|
|
2696
|
+
var cnt = 0;
|
|
2697
|
+
PointArray.forEach(function (pointElement) {
|
|
2698
|
+
if (pointElement[0] == 0) cnt++;
|
|
2699
|
+
});
|
|
2700
|
+
if (cnt == 4 || cnt == 3) {
|
|
2701
|
+
PointArray[0][0] = 100;
|
|
2702
|
+
PointArray[1][0] = 100;
|
|
2703
|
+
}
|
|
2748
2704
|
return {
|
|
2749
2705
|
PointArray: PointArray
|
|
2750
2706
|
};
|