kitchen-simulator 3.0.3 → 3.1.0-alpha.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.
Files changed (41) hide show
  1. package/es/LiteKitchenConfigurator.js +52 -29
  2. package/es/LiteRenderer.js +5 -8
  3. package/es/actions/lines-actions.js +3 -1
  4. package/es/assets/img/png/helper/video_preview_start.png +0 -0
  5. package/es/catalog/factories/area-factory-3d.js +17 -17
  6. package/es/catalog/holes/window-clear/planner-element.js +2 -2
  7. package/es/catalog/utils/item-loader.js +198 -197
  8. package/es/class/item.js +8 -0
  9. package/es/class/line.js +14 -2
  10. package/es/components/viewer2d/item.js +36 -12
  11. package/es/components/viewer2d/utils.js +2 -2
  12. package/es/components/viewer2d/viewer2d.js +12 -10
  13. package/es/components/viewer3d/viewer3d.js +66 -74
  14. package/es/constants.js +6 -2
  15. package/es/devLiteRenderer.js +192 -98
  16. package/es/index.js +104 -14
  17. package/es/reducers/lines-reducer.js +1 -1
  18. package/es/utils/geometry.js +161 -0
  19. package/es/utils/isolate-event-handler.js +268 -114
  20. package/es/utils/molding.js +234 -2
  21. package/lib/LiteKitchenConfigurator.js +52 -29
  22. package/lib/LiteRenderer.js +5 -8
  23. package/lib/actions/lines-actions.js +3 -1
  24. package/lib/assets/img/png/helper/video_preview_start.png +0 -0
  25. package/lib/catalog/factories/area-factory-3d.js +14 -14
  26. package/lib/catalog/holes/window-clear/planner-element.js +2 -2
  27. package/lib/catalog/utils/item-loader.js +195 -194
  28. package/lib/class/item.js +8 -0
  29. package/lib/class/line.js +13 -1
  30. package/lib/components/viewer2d/item.js +36 -12
  31. package/lib/components/viewer2d/utils.js +2 -2
  32. package/lib/components/viewer2d/viewer2d.js +12 -10
  33. package/lib/components/viewer3d/viewer3d.js +66 -74
  34. package/lib/constants.js +11 -7
  35. package/lib/devLiteRenderer.js +186 -92
  36. package/lib/index.js +104 -14
  37. package/lib/reducers/lines-reducer.js +1 -1
  38. package/lib/utils/geometry.js +162 -0
  39. package/lib/utils/isolate-event-handler.js +267 -113
  40. package/lib/utils/molding.js +233 -0
  41. package/package.json +1 -1
@@ -4,9 +4,9 @@ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
4
4
  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; }
5
5
  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) { _defineProperty(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; }
6
6
  import { convert } from "../../utils/convert-units-lite";
7
- import { fromJS, Map } from 'immutable';
8
- import React, { useState } from 'react';
9
- import * as Three from 'three';
7
+ import { fromJS, Map } from "immutable";
8
+ import React, { useState } from "react";
9
+ import * as Three from "three";
10
10
  import * as SceneCreator from "../../components/viewer3d/scene-creator";
11
11
  import { ARROW_COLOR, BASE_CABINET_LAYOUTPOS, OBJTYPE_GROUP, OBJTYPE_MESH, SHADE_DARK_PURPLE_COLOR, SHAPE_SVG_DEPTH, SHAPE_SVG_PADDING, SHAPE_SVG_WIDTH, STATUS_WARNING_COLOR, STATUS_WARNING_LIGHT_COLOR, TALL_CABINET_LAYOUTPOS, UNIT_CENTIMETER, UNIT_INCH, WALL_CABINET_LAYOUTPOS } from "../../constants";
12
12
  import { Item } from "../../models";
@@ -14,18 +14,18 @@ import * as GeomUtils from "./geom-utils";
14
14
  import { loadGLTF } from "./load-obj";
15
15
  import { animateDoor, isEmpty, translateDrawer } from "../../utils/helper";
16
16
  import { isWarningItem } from "../../components/viewer2d/utils";
17
- var INITIAL_NORMAL_MAP = '';
17
+ var INITIAL_NORMAL_MAP = "";
18
18
 
19
19
  // env Map ///////////////
20
20
  var paramsCounter = {
21
- envMap: 'HDR',
21
+ envMap: "HDR",
22
22
  roughness: 0.6,
23
23
  metalness: 0.3,
24
24
  exposure: 1
25
25
  // debug: true
26
26
  };
27
27
  var params = {
28
- envMap: 'HDR',
28
+ envMap: "HDR",
29
29
  roughness: 0.9,
30
30
  metalness: 0.1,
31
31
  metalness_glossy: 0.2,
@@ -33,18 +33,18 @@ var params = {
33
33
  // debug: false
34
34
  };
35
35
  var paramsModel = {
36
- envMap: 'HDR',
36
+ envMap: "HDR",
37
37
  roughness: 0.9,
38
38
  metalness: 0.2,
39
39
  exposure: 1.0
40
40
  // debug: false
41
41
  };
42
42
  var buttons = [{
43
- name: 'Edit',
44
- thumbnail: '/assets/img/svg/3d_item_warning_edit.svg'
43
+ name: "Edit",
44
+ thumbnail: "/assets/img/svg/3d_item_warning_edit.svg"
45
45
  }, {
46
- name: 'Info',
47
- thumbnail: '/assets/img/svg/3d_item_warning_info.svg'
46
+ name: "Info",
47
+ thumbnail: "/assets/img/svg/3d_item_warning_info.svg"
48
48
  }];
49
49
 
50
50
  // /////////////////////////
@@ -60,7 +60,7 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
60
60
  var x = element.x,
61
61
  y = element.y,
62
62
  rotation = element.rotation;
63
- var el_DSN = 'el_DSN',
63
+ var el_DSN = "el_DSN",
64
64
  doorStylesKeys = [];
65
65
  var _element = element.toJS();
66
66
  if (_element.doorStyle !== undefined) {
@@ -68,10 +68,10 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
68
68
  doorStylesKeys = Object.keys(_element.doorStyle.doorStyles);
69
69
  }
70
70
  }
71
- if ((doorStylesKeys.includes('euro_length') || doorStylesKeys.includes('euro_width') || doorStylesKeys.includes('euro_shape_svg')) && _element.doorStyle.doorStyles.is_euro_cds) {
71
+ if ((doorStylesKeys.includes("euro_length") || doorStylesKeys.includes("euro_width") || doorStylesKeys.includes("euro_shape_svg")) && _element.doorStyle.doorStyles.is_euro_cds) {
72
72
  el_DSN = _element.doorStyle.door_style_name;
73
73
  } else {
74
- el_DSN = 'el_DSN';
74
+ el_DSN = "el_DSN";
75
75
  }
76
76
  var width, depth, el_euro_length, el_euro_width, el_euro_length_unit, el_euro_width_unit, el_is_euro_cds, el_euro_shape_svg;
77
77
  if (doorStylesKeys.length > 0) {
@@ -81,41 +81,41 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
81
81
  el_euro_shape_svg = _element.doorStyle.doorStyles.euro_shape_svg;
82
82
  }
83
83
  if (el_euro_length === undefined && el_euro_width === undefined) {
84
- el_DSN = 'el_DSN';
84
+ el_DSN = "el_DSN";
85
85
  }
86
- if (el_DSN === 'Euro & Frameless') {
86
+ if (el_DSN === "Euro & Frameless") {
87
87
  // sizeinfo["depth"] = el_euro_length;
88
88
  // sizeinfo["width"] = el_euro_width;
89
89
  }
90
- var tempWidth = element.properties.get('width');
91
- var tempDepth = element.properties.get('depth');
90
+ var tempWidth = element.properties.get("width");
91
+ var tempDepth = element.properties.get("depth");
92
92
  width = tempWidth && {
93
- length: tempWidth.get('_length'),
94
- unit: tempWidth.get('_unit')
93
+ length: tempWidth.get("_length"),
94
+ unit: tempWidth.get("_unit")
95
95
  };
96
96
  depth = tempDepth && {
97
- length: tempDepth.get('_length'),
98
- unit: tempDepth.get('_unit')
97
+ length: tempDepth.get("_length"),
98
+ unit: tempDepth.get("_unit")
99
99
  };
100
- var originalWidth = convert(sizeinfo.width).from('in').to('cm');
101
- var originalDepth = convert(sizeinfo.depth).from('in').to('cm');
102
- var newWidth = convert(width.length).from(width.unit).to('cm');
103
- var newDepth = convert(depth.length).from(depth.unit).to('cm');
100
+ var originalWidth = convert(sizeinfo.width).from("in").to("cm");
101
+ var originalDepth = convert(sizeinfo.depth).from("in").to("cm");
102
+ var newWidth = convert(width.length).from(width.unit).to("cm");
103
+ var newDepth = convert(depth.length).from(depth.unit).to("cm");
104
104
  var padding = convert(SHAPE_SVG_PADDING).from(UNIT_INCH).to(UNIT_CENTIMETER);
105
105
  var angle = element.rotation + 90;
106
106
  var textRotation = 0;
107
107
  if (Math.sin(angle * Math.PI / 180) < 0) {
108
108
  textRotation = 180;
109
109
  }
110
- var color = '#eee';
110
+ var color = "#eee";
111
111
  if (layoutpos == BASE_CABINET_LAYOUTPOS) {
112
- color = '#3f8db3';
112
+ color = "#3f8db3";
113
113
  }
114
114
  if (layoutpos == TALL_CABINET_LAYOUTPOS) {
115
- color = '#93b3be';
115
+ color = "#93b3be";
116
116
  }
117
117
  if (layoutpos == WALL_CABINET_LAYOUTPOS) {
118
- color = '#48b08dcc';
118
+ color = "#48b08dcc";
119
119
  }
120
120
  var splitStr = [];
121
121
  var txtContent = [];
@@ -129,7 +129,7 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
129
129
  var dcId,
130
130
  doorStyle = element.doorStyle;
131
131
  if (doorStyle instanceof Map) {
132
- dcId = doorStyle.get('id');
132
+ dcId = doorStyle.get("id");
133
133
  } else {
134
134
  dcId = doorStyle.id;
135
135
  }
@@ -148,7 +148,7 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
148
148
  splitStr.push(type.slice(lineCount * rowCount));
149
149
  splitStr.forEach(function (el, key) {
150
150
  txtContent.push(/*#__PURE__*/React.createElement("text", {
151
- key: 'text' + key,
151
+ key: "text" + key,
152
152
  x: "0",
153
153
  y: newDepth / 2 - 12,
154
154
  dy: 16 * key,
@@ -158,16 +158,16 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
158
158
  ,
159
159
  style: {
160
160
  fontWeight: 500,
161
- fontSize: '7px',
162
- textAnchor: 'middle',
163
- fill: '#FFF',
164
- display: 'block'
161
+ fontSize: "7px",
162
+ textAnchor: "middle",
163
+ fill: "#FFF",
164
+ display: "block"
165
165
  }
166
166
  }, el));
167
167
  });
168
168
  var style = {
169
- stroke: element.selected ? '#565658' : '#565658',
170
- strokeWidth: '2px',
169
+ stroke: element.selected ? "#565658" : "#565658",
170
+ strokeWidth: "2px",
171
171
  fill: color
172
172
  };
173
173
  // let arrow_style = { stroke: element.selected ? '#0096fd' : null, strokeWidth: "2px", fill: "#84e1ce" };
@@ -175,8 +175,8 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
175
175
  var rendered = null;
176
176
  var svg_url, svg_width, svg_depth;
177
177
  if (shape_svg || el_euro_shape_svg) {
178
- if (typeof shape_svg == 'string' || typeof el_euro_shape_svg == 'string') {
179
- if (el_DSN === 'Euro & Frameless' && el_is_euro_cds) {
178
+ if (typeof shape_svg == "string" || typeof el_euro_shape_svg == "string") {
179
+ if (el_DSN === "Euro & Frameless" && el_is_euro_cds) {
180
180
  svg_url = el_euro_shape_svg;
181
181
  svg_width = newWidth;
182
182
  svg_depth = newDepth;
@@ -203,20 +203,20 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
203
203
  var warning_buttons = /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("g", {
204
204
  id: "warning_info_2d",
205
205
  style: {
206
- cursor: 'pointer',
206
+ cursor: "pointer",
207
207
  transform: "translate(".concat(-transX, "px, ").concat(-transY, "px)")
208
208
  },
209
209
  onMouseEnter: function onMouseEnter(event) {
210
210
  var bbox = event.target.getBoundingClientRect();
211
- if (document.getElementById('warning_box_2d')) {
212
- document.getElementById('warning_box_2d').style.display = 'flex';
213
- document.getElementById('warning_box_2d').style.top = "".concat(bbox.top - 60, "px");
214
- document.getElementById('warning_box_2d').style.left = "".concat(bbox.left, "px");
211
+ if (document.getElementById("warning_box_2d")) {
212
+ document.getElementById("warning_box_2d").style.display = "flex";
213
+ document.getElementById("warning_box_2d").style.top = "".concat(bbox.top - 60, "px");
214
+ document.getElementById("warning_box_2d").style.left = "".concat(bbox.left, "px");
215
215
  }
216
216
  },
217
217
  onMouseLeave: function onMouseLeave() {
218
- if (document.getElementById('warning_box_2d')) {
219
- document.getElementById('warning_box_2d').style.display = 'none';
218
+ if (document.getElementById("warning_box_2d")) {
219
+ document.getElementById("warning_box_2d").style.display = "none";
220
220
  }
221
221
  }
222
222
  }, /*#__PURE__*/React.createElement("circle", {
@@ -235,7 +235,7 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
235
235
  href: buttons[1].thumbnail
236
236
  })), /*#__PURE__*/React.createElement("g", {
237
237
  style: {
238
- cursor: 'pointer',
238
+ cursor: "pointer",
239
239
  transform: "translate(".concat(transX, "px, ").concat(transY, "px)")
240
240
  },
241
241
  "data-element-root": true,
@@ -281,7 +281,7 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
281
281
  }, /*#__PURE__*/React.createElement("image", {
282
282
  preserveAspectRatio: "none",
283
283
  style: {
284
- pointerEvents: 'none'
284
+ pointerEvents: "none"
285
285
  },
286
286
  href: svg_url,
287
287
  width: "".concat(newWidth + 2 * padding_width),
@@ -294,16 +294,16 @@ export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corn
294
294
  y: "".concat(padding_depth),
295
295
  width: "".concat(newWidth),
296
296
  height: "".concat(newDepth),
297
- visibility: 'hidden',
297
+ visibility: "hidden",
298
298
  style: {
299
- pointerEvents: 'all',
299
+ pointerEvents: "all",
300
300
  opacity: 0.7,
301
- postion: 'relative'
301
+ postion: "relative"
302
302
  }
303
303
  }), /*#__PURE__*/React.createElement("g", {
304
304
  transform: "translate(".concat(padding_width, ",").concat(padding_depth, ")")
305
- }, txtContent)), element.category === 'cabinet' && /*#__PURE__*/React.createElement("g", {
306
- visibility: isWarningItem(element) ? 'visible' : 'hidden'
305
+ }, txtContent)), element.category === "cabinet" && /*#__PURE__*/React.createElement("g", {
306
+ visibility: isWarningItem(element) ? "visible" : "hidden"
307
307
  }, warning_buttons)));
308
308
  } else {
309
309
  rendered = /*#__PURE__*/React.createElement("g", {
@@ -390,38 +390,38 @@ var assignUVs = function assignUVs(geometry) {
390
390
  export function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner) {
391
391
  var mode = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
392
392
  if (element.doorStyle.constructor !== Map) {
393
- element = element.set('doorStyle', fromJS(element.doorStyle));
393
+ element = element.set("doorStyle", fromJS(element.doorStyle));
394
394
  }
395
- if (element.doorStyle.toJS().handle_gltf !== '') {
395
+ if (element.doorStyle.toJS().handle_gltf !== "") {
396
396
  // Check element has doorHandle
397
397
  for (var i = 1; i < 10; i++) {
398
- element = element.setIn(['doorStyle', 'doorStyles', 'door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
399
- element = element.setIn(['doorStyle', 'doorStyles', 'fixed_drawer_door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
400
- element = element.setIn(['doorStyle', 'doorStyles', 'drawer_door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
398
+ element = element.setIn(["doorStyle", "doorStyles", "door_handle_" + i + "_gltf"], element.doorStyle.toJS().handle_gltf);
399
+ element = element.setIn(["doorStyle", "doorStyles", "fixed_drawer_door_handle_" + i + "_gltf"], element.doorStyle.toJS().handle_gltf);
400
+ element = element.setIn(["doorStyle", "doorStyles", "drawer_door_handle_" + i + "_gltf"], element.doorStyle.toJS().handle_gltf);
401
401
  }
402
402
  }
403
403
  var width = {
404
404
  length: sizeinfo.width,
405
- unit: 'in'
405
+ unit: "in"
406
406
  };
407
407
  var depth = {
408
408
  length: sizeinfo.depth,
409
- unit: 'in'
409
+ unit: "in"
410
410
  };
411
411
  var height = {
412
412
  length: sizeinfo.height,
413
- unit: 'in'
413
+ unit: "in"
414
414
  };
415
- var newWidth = convert(width.length).from(width.unit).to('in');
416
- var newDepth = convert(depth.length).from(depth.unit).to('in');
417
- var newHeight = convert(height.length).from(height.unit).to('in');
418
- var mainName = ''; // to get name structure//
419
- if (element.properties.get('width')) newWidth = element.getIn(['properties', 'width', '_length']);
420
- if (element.properties.get('depth')) newDepth = element.getIn(['properties', 'depth', '_length']);
421
- if (element.properties.get('height')) newHeight = element.getIn(['properties', 'height', '_length']);
415
+ var newWidth = convert(width.length).from(width.unit).to("in");
416
+ var newDepth = convert(depth.length).from(depth.unit).to("in");
417
+ var newHeight = convert(height.length).from(height.unit).to("in");
418
+ var mainName = ""; // to get name structure//
419
+ if (element.properties.get("width")) newWidth = element.getIn(["properties", "width", "_length"]);
420
+ if (element.properties.get("depth")) newDepth = element.getIn(["properties", "depth", "_length"]);
421
+ if (element.properties.get("height")) newHeight = element.getIn(["properties", "height", "_length"]);
422
422
  var structure = structure_json;
423
423
  // structure.push({name:'model', url: '/assets/model/DCM.gltf'});
424
- structure.model = '/assets/model/DCM.gltf';
424
+ structure.model = "/assets/model/DCM.gltf";
425
425
  var placeholders = structure.placeholders;
426
426
  var doorStyles = null;
427
427
  var color = 0xffffff,
@@ -431,25 +431,26 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
431
431
  if (layer.toJS().counterTop.uri) {
432
432
  counterTop.uri = layer.toJS().counterTop.uri;
433
433
  }
434
- if ('name' in element.doorStyle) {
434
+ if ("name" in element.doorStyle) {
435
435
  doorStyles = new Map(element.doorStyle.doorStyles);
436
436
  color = element.doorStyle.color;
437
437
  glossness = element.doorStyle.glossness;
438
438
  handleMaterial.metalness = element.doorStyle.metalness;
439
439
  handleMaterial.roughness = element.doorStyle.roughness;
440
440
  } else if (element.doorStyle != null && element.doorStyle) {
441
- doorStyles = element.doorStyle.get('doorStyles');
442
- color = element.doorStyle.get('color');
443
- glossness = element.doorStyle.get('glossness');
444
- handleMaterial.metalness = element.doorStyle.get('metalness');
445
- handleMaterial.roughness = element.doorStyle.get('roughness');
441
+ doorStyles = element.doorStyle.get("doorStyles");
442
+ color = element.doorStyle.get("color");
443
+ glossness = element.doorStyle.get("glossness");
444
+ handleMaterial.metalness = element.doorStyle.get("metalness");
445
+ handleMaterial.roughness = element.doorStyle.get("roughness");
446
446
  }
447
- if (color === undefined) color = '#ffffff';
447
+ if (color === undefined) color = "#ffffff";
448
448
  if (glossness === undefined) glossness = 1;
449
449
  var tempDoorStyles = doorStyles.toJS();
450
450
  var tempPlaceholders = structure.tempPlaceholders;
451
451
  var tPlaceholders = tempPlaceholders.find(function (el) {
452
452
  return el.id === tempDoorStyles.cabinet_door_style_id;
453
+ // return el.id === tempDoorStyles.cds[0].cabinet_door_style_id;
453
454
  });
454
455
  if (tPlaceholders !== undefined) {
455
456
  placeholders = tPlaceholders.placeholders;
@@ -468,13 +469,13 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
468
469
  areaMaterial.side = Three.DoubleSide;
469
470
  // areaMaterial.envMap = textureCube;
470
471
  if (isEmpty(doorStyles)) {
471
- var normalMap = doorStyles.get('base') || INITIAL_NORMAL_MAP;
472
+ var normalMap = doorStyles.get("base") || INITIAL_NORMAL_MAP;
472
473
  var interiortexture = loadTexture(normalMap);
473
474
  applyTexture(areaMaterial, interiortexture, 100, 100);
474
475
  }
475
476
  var object1 = object;
476
- var newAltitude = element.properties.get('altitude').get('_length');
477
- var newUnit = element.properties.get('altitude').get('_unit') || 'in';
477
+ var newAltitude = element.properties.get("altitude").get("_length");
478
+ var newUnit = element.properties.get("altitude").get("_unit") || "in";
478
479
  newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
479
480
  var _element = element.toJS();
480
481
  if (!_element.doorStyle.doorStyles.is_euro_cds) {
@@ -491,27 +492,27 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
491
492
  var door_match = child.name.match(matchStr);
492
493
  if (door_match && door_match.length > 2) {
493
494
  var _child$children$;
494
- var rotate_match_text = element.properties.toJS().flip_doorhandle ? 'rotate_L' : 'rotate_R';
495
- if (door_match[2] === '_L') {
496
- rotate_match_text = element.properties.toJS().flip_doorhandle ? 'rotate_R' : 'rotate_L';
495
+ var rotate_match_text = element.properties.toJS().flip_doorhandle ? "rotate_L" : "rotate_R";
496
+ if (door_match[2] === "_L") {
497
+ rotate_match_text = element.properties.toJS().flip_doorhandle ? "rotate_R" : "rotate_L";
497
498
  }
498
499
  var isDoubleDoor = door_match && door_match[2] !== undefined;
499
500
  (_child$children$ = child.children[0]) === null || _child$children$ === void 0 || _child$children$.children.forEach(function (it) {
500
501
  var _it$name, _it$children;
501
- if (it !== null && it !== void 0 && (_it$name = it.name) !== null && _it$name !== void 0 && _it$name.includes('handle') && (_it$children = it.children) !== null && _it$children !== void 0 && _it$children.length && is_corner === 1 && isDoubleDoor) {
502
+ if (it !== null && it !== void 0 && (_it$name = it.name) !== null && _it$name !== void 0 && _it$name.includes("handle") && (_it$children = it.children) !== null && _it$children !== void 0 && _it$children.length && is_corner === 1 && isDoubleDoor) {
502
503
  var _child$name, _child$name2, _object1$children, _t0$name, _t0$children;
503
- var tname = child !== null && child !== void 0 && (_child$name = child.name) !== null && _child$name !== void 0 && _child$name.endsWith('_L') ? child.name.replace('_L', '_R') : child === null || child === void 0 || (_child$name2 = child.name) === null || _child$name2 === void 0 ? void 0 : _child$name2.replace('_R', '_L');
504
+ var tname = child !== null && child !== void 0 && (_child$name = child.name) !== null && _child$name !== void 0 && _child$name.endsWith("_L") ? child.name.replace("_L", "_R") : child === null || child === void 0 || (_child$name2 = child.name) === null || _child$name2 === void 0 ? void 0 : _child$name2.replace("_R", "_L");
504
505
  var tmp = (object1 === null || object1 === void 0 || (_object1$children = object1.children) === null || _object1$children === void 0 ? void 0 : _object1$children.filter(function (item) {
505
506
  return (item === null || item === void 0 ? void 0 : item.name) === tname;
506
507
  })) || [];
507
508
  var t0 = tmp[0];
508
- var filterStr = t0 !== null && t0 !== void 0 && (_t0$name = t0.name) !== null && _t0$name !== void 0 && _t0$name.endsWith('_L') ? 'rotate_L' : 'rotate_R';
509
+ var filterStr = t0 !== null && t0 !== void 0 && (_t0$name = t0.name) !== null && _t0$name !== void 0 && _t0$name.endsWith("_L") ? "rotate_L" : "rotate_R";
509
510
  var tposArr = (t0 === null || t0 === void 0 || (_t0$children = t0.children) === null || _t0$children === void 0 || (_t0$children = _t0$children[0]) === null || _t0$children === void 0 || (_t0$children = _t0$children.children) === null || _t0$children === void 0 ? void 0 : _t0$children.filter(function (item) {
510
511
  var _item$name;
511
512
  return item === null || item === void 0 || (_item$name = item.name) === null || _item$name === void 0 ? void 0 : _item$name.endsWith(filterStr);
512
513
  })) || [];
513
514
  var tpos0 = tposArr[0];
514
- if (it.name.includes('base_end')) {
515
+ if (it.name.includes("base_end")) {
515
516
  var _it$position$x, _it$position, _it$position$y, _it$position2, _tpos0$position$x, _tpos0$position;
516
517
  door_animate_offset[child.name] = {
517
518
  x: -2 * ((_it$position$x = (_it$position = it.position) === null || _it$position === void 0 ? void 0 : _it$position.x) !== null && _it$position$x !== void 0 ? _it$position$x : 0) - 0.12,
@@ -579,16 +580,16 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
579
580
  // vertical line - 4 lines around object//////////////////////////
580
581
  var vLineGeom = new Three.BufferGeometry();
581
582
  var vertices = [(max.x - min.x) / 2 + min.x, 0, max.z, (max.x - min.x) / 2 + min.x, 0, max.z + 1.3];
582
- vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
583
+ vLineGeom.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices), 3));
583
584
  var vLineGeom1 = new Three.BufferGeometry();
584
585
  var vertices1 = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z - 1.3];
585
- vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
586
+ vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices1), 3));
586
587
  var vLineGeom2 = new Three.BufferGeometry();
587
588
  var vertices2 = [max.x, 0, max.z - (max.z - min.z) / 2, max.x + 1.3, 0, max.z - (max.z - min.z) / 2];
588
- vLineGeom2.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
589
+ vLineGeom2.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices2), 3));
589
590
  var vLineGeom3 = new Three.BufferGeometry();
590
591
  var vertices3 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x - 1.3, 0, max.z - (max.z - min.z) / 2];
591
- vLineGeom3.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
592
+ vLineGeom3.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices3), 3));
592
593
  // ///////////////////////////////////////
593
594
 
594
595
  // set names of transform object
@@ -601,12 +602,12 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
601
602
  color: new Three.Color(0xffffff).convertLinearToSRGB(),
602
603
  colorWrite: true
603
604
  }));
604
- rotFillObj.name = 'rotate';
605
+ rotFillObj.name = "rotate";
605
606
  var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
606
607
  color: new Three.Color(0xffffff).convertLinearToSRGB(),
607
608
  side: Three.DoubleSide
608
609
  }));
609
- upObj.name = 'transUp';
610
+ upObj.name = "transUp";
610
611
  var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
611
612
  color: new Three.Color(0xdd6699).convertLinearToSRGB(),
612
613
  side: Three.DoubleSide,
@@ -648,7 +649,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
648
649
  //rotObj.translateOnAxis(uVec, 1);
649
650
  upObj.translateOnAxis(uVec, 1);
650
651
  upObj.translateY(max.y - min.y);
651
- mBox.name = 'TransformBox';
652
+ mBox.name = "TransformBox";
652
653
  mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
653
654
  mBox.scale.set(1.01, 1.01, 1.01);
654
655
 
@@ -677,7 +678,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
677
678
  asrtObj.add(mBox);
678
679
  asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);
679
680
  //asrtObj.translateY(newAltitude / scalevec.y);
680
- asrtObj.name = 'TransformGizmo';
681
+ asrtObj.name = "TransformGizmo";
681
682
  // add assets Objects Group
682
683
  object1.add(asrtObj);
683
684
 
@@ -690,7 +691,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
690
691
  SceneCreator.getDistances(layer);
691
692
  }, 100);
692
693
  }
693
- var flip_doorhandle = element.properties.get('flip_doorhandle');
694
+ var flip_doorhandle = element.properties.get("flip_doorhandle");
694
695
  if (flip_doorhandle) {
695
696
  SceneCreator.updateDoorHandleMesh(element, object1, true);
696
697
  }
@@ -706,14 +707,14 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
706
707
  transparency: 0.8
707
708
  });
708
709
  obj.material = material;
709
- } else if (name.startsWith('sink_')) {
710
+ } else if (name.startsWith("sink_")) {
710
711
  // texture = loadTexture('/assets/img/texture/steel.jpg');
711
712
 
712
713
  var _material;
713
714
  // Get color from name
714
- if (name.includes('black') || name.includes('white')) {
715
+ if (name.includes("black") || name.includes("white")) {
715
716
  var _color2;
716
- if (name.includes('black')) {
717
+ if (name.includes("black")) {
717
718
  _color2 = new Three.Color(0x555555).convertLinearToSRGB();
718
719
  } else {
719
720
  _color2 = 0xffffff;
@@ -746,14 +747,14 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
746
747
  var open_doors = element.toJS().properties.open_doors;
747
748
  var object_match = obj.name.match(/\d_(interior_drawer[^LR1-9]*)(_[LR1-9])?$/) || obj.name.match(matchStr);
748
749
  if (object_match && object_match.length > 2) {
749
- var isDoor = object_match[1] === 'door';
750
+ var isDoor = object_match[1] === "door";
750
751
  if (isDoor) {
751
752
  var offsetData = object1.userData.door_animate_offset[obj.name];
752
753
  // Open Door
753
- animateDoor(offsetData, obj, open_doors, element.toJS(), is_corner, 'Opened2D');
754
+ animateDoor(offsetData, obj, open_doors, element.toJS(), is_corner, "Opened2D");
754
755
  } else {
755
756
  // Open Drawer
756
- translateDrawer(element.toJS(), obj, open_doors, 'Opened2D');
757
+ translateDrawer(element.toJS(), obj, open_doors, "Opened2D");
757
758
  }
758
759
  }
759
760
  }
@@ -763,30 +764,30 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
763
764
  // keys in structure
764
765
  var keys = Object.keys(structure);
765
766
  // if exist in cached Objects
766
- if (element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS()) + element.counterTop.uri in cachedObject) {
767
- var _objGroup = cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())].clone();
767
+ if (element.type + color + "doorStyle" + JSON.stringify(doorStyles.toJS()) + element.counterTop.uri in cachedObject) {
768
+ var _objGroup = cachedObject[element.type + color + "doorStyle" + JSON.stringify(doorStyles.toJS())].clone();
768
769
  return Promise.resolve(onLoadItem(_objGroup.clone()));
769
770
  }
770
771
 
771
772
  // base Object/////
772
773
  var objGroup = null;
773
774
  var _loadGLTFs = function loadGLTFs(i) {
774
- if (keys[i] === 'animation') {
775
+ if (keys[i] === "animation") {
775
776
  // if animation info
776
777
  i++;
777
778
  return _loadGLTFs(i);
778
779
  }
779
- if (keys[i] === 'placeholders') {
780
+ if (keys[i] === "placeholders") {
780
781
  // if placeholders group
781
782
  i++;
782
783
  return _loadGLTFs(i);
783
784
  }
784
785
  if (i === keys.length) {
785
786
  // if end of keys
786
- cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = objGroup.clone(); //register to cachedObject
787
- return onLoadItem(cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())].clone());
787
+ cachedObject[element.type + color + "doorStyle" + JSON.stringify(doorStyles.toJS())] = objGroup.clone(); //register to cachedObject
788
+ return onLoadItem(cachedObject[element.type + color + "doorStyle" + JSON.stringify(doorStyles.toJS())].clone());
788
789
  }
789
- if (keys[i] === 'base') {
790
+ if (keys[i] === "base") {
790
791
  // if base Objects
791
792
  i++;
792
793
  return _loadGLTFs(i);
@@ -799,15 +800,15 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
799
800
  }
800
801
  for (var j = 0; j < placeholderStructure.length; j++) {
801
802
  var phData = placeholderStructure[j];
802
- var phs = phData.split('/');
803
- var temp = phData.split('/');
803
+ var phs = phData.split("/");
804
+ var temp = phData.split("/");
804
805
  // placeholder remake////////////////
805
806
  for (var k = 0; k < phs.length; k++) {
806
807
  if (phs[k] in placeholders) {
807
808
  var placeholderphs = placeholders[phs[k]];
808
809
  var key = placeholderStructure.length / placeholderphs.length;
809
810
  phs[k] = placeholderphs[Math.floor(j / key)];
810
- var splitedData = phs[k].split('/');
811
+ var splitedData = phs[k].split("/");
811
812
  if (splitedData.length > 1) {
812
813
  phs[k] = splitedData[splitedData.length - 1];
813
814
  for (var m = splitedData.length - 2; m >= 0; m--) {
@@ -818,41 +819,41 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
818
819
  k = -1;
819
820
  continue;
820
821
  }
821
- if (phs[k].indexOf('ph') == -1) {
822
+ if (phs[k].indexOf("ph") == -1) {
822
823
  var _url = structure[temp[k - 1]];
823
- if (temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS()) in structure) {
824
- if (structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] != null) {
825
- _url = structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())];
824
+ if (temp[k - 1] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS()) in structure) {
825
+ if (structure[temp[k - 1] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS())] != null) {
826
+ _url = structure[temp[k - 1] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS())];
826
827
  }
827
828
  }
828
829
  if (_typeof(_url) == Array) _url = _url[0];
829
- var uData = _url.split('/');
830
+ var uData = _url.split("/");
830
831
  uData = uData[uData.length - 1];
831
832
  uData = uData.slice(0, -5);
832
- var datas = uData.split('_');
833
+ var datas = uData.split("_");
833
834
  uData = datas[1];
834
835
  for (var _i = 2; _i < datas.length; _i++) {
835
- uData += '_';
836
+ uData += "_";
836
837
  uData += datas[_i];
837
838
  }
838
- uData = mainName.replace('main', uData);
839
- phs[k] = 'ph_' + uData + '_' + phs[k];
839
+ uData = mainName.replace("main", uData);
840
+ phs[k] = "ph_" + uData + "_" + phs[k];
840
841
  }
841
842
  }
842
843
  phsArray.push(phs);
843
844
  }
844
845
  var url = structure[keys[i]];
845
- var normalMap = '';
846
- var urlData = url.split('/');
846
+ var normalMap = "";
847
+ var urlData = url.split("/");
847
848
  for (var _j = 0; _j < element.submodule.size; _j++) {
848
- var replaceUrlData = element.submodule.get(_j).split('/');
849
+ var replaceUrlData = element.submodule.get(_j).split("/");
849
850
  if (urlData.includes(replaceUrlData[replaceUrlData.length - 2])) {
850
851
  url = element.submodule.get(_j);
851
852
  break;
852
853
  }
853
854
  }
854
855
  for (var _j2 = 0; _j2 < element.normalMap.size; _j2++) {
855
- var normalMapData = element.normalMap.get(_j2).split('/');
856
+ var normalMapData = element.normalMap.get(_j2).split("/");
856
857
  if (urlData.includes(normalMapData[normalMapData.length - 2])) {
857
858
  normalMap = element.normalMap.get(_j2);
858
859
  break;
@@ -864,15 +865,15 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
864
865
  if (phsArray.length > 0) {
865
866
  // let loadUrl = dirName + url;
866
867
  var loadUrl = url;
867
- if (doorStyles.get(keys[i] + '_gltf') != undefined) {
868
- loadUrl = doorStyles.get(keys[i] + '_gltf');
869
- structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = loadUrl;
868
+ if (doorStyles.get(keys[i] + "_gltf") != undefined) {
869
+ loadUrl = doorStyles.get(keys[i] + "_gltf");
870
+ structure[keys[i] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS())] = loadUrl;
870
871
  } else {
871
- structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = null;
872
+ structure[keys[i] + "_doorStyle" + element.type + "doorStyle" + JSON.stringify(doorStyles.toJS())] = null;
872
873
  }
873
874
  return loadGLTF(loadUrl).then(function (object) {
874
- if (normalMap !== '') {
875
- var normalUrl = normalMap.split('.')[0] + '-normal.' + normalMap.split('.')[1];
875
+ if (normalMap !== "") {
876
+ var normalUrl = normalMap.split(".")[0] + "-normal." + normalMap.split(".")[1];
876
877
  var t = loadTexture(normalMap);
877
878
  var _m = loadTexture(normalUrl);
878
879
  var mat2 = new Three.MeshStandardMaterial({
@@ -896,7 +897,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
896
897
  // let normalMap = "catalog/items/doorstyle/" + doorStyles.get(keys[i]);
897
898
  var _normalMap = doorStyles.get(keys[i]) || INITIAL_NORMAL_MAP;
898
899
  var _mat;
899
- if (_normalMap === '') {
900
+ if (_normalMap === "") {
900
901
  var examplecolor = new Three.Color(parseInt(color.slice(1), 16)).convertLinearToSRGB();
901
902
  _mat = new Three.MeshStandardMaterial({
902
903
  color: examplecolor,
@@ -920,8 +921,8 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
920
921
  object.children[_j4].material = _mat;
921
922
  object.children[_j4].receiveShadow = true;
922
923
  object.children[_j4].castShadow = true;
923
- !object.children[_j4].name.includes('handle') && addEdgesToMesh(object.children[_j4]);
924
- } else if (!object.children[_j4].name.startsWith('ph_') && object.children[_j4].type === OBJTYPE_GROUP) {
924
+ !object.children[_j4].name.includes("handle") && addEdgesToMesh(object.children[_j4]);
925
+ } else if (!object.children[_j4].name.startsWith("ph_") && object.children[_j4].type === OBJTYPE_GROUP) {
925
926
  object.children[_j4].traverse(function (prim) {
926
927
  prim.material = _mat;
927
928
  prim.receiveShadow = true;
@@ -961,10 +962,10 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
961
962
  } else {
962
963
  if (parent.children[_k].name == placeholder) {
963
964
  var tmp = object.clone();
964
- if (placeholder.includes('drawer_door') && placeholder.includes('_handle')) {
965
+ if (placeholder.includes("drawer_door") && placeholder.includes("_handle")) {
965
966
  tmp.rotateZ(Math.PI / 2);
966
967
  }
967
- if (placeholder.includes('_handle') && tmp.children[0].type === OBJTYPE_MESH) {
968
+ if (placeholder.includes("_handle") && tmp.children[0].type === OBJTYPE_MESH) {
968
969
  // NOTE: change metalness of handle
969
970
  tmp.children[0].material.metalness = 1;
970
971
  // handleMaterial.metalness || 0.2;
@@ -978,25 +979,25 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
978
979
  }
979
980
  }
980
981
  }, function (reason) {
981
- console.log('loadGLTF failed for reason:', reason);
982
+ console.log("loadGLTF failed for reason:", reason);
982
983
  }).then(function () {
983
984
  i++;
984
985
  return _loadGLTFs(i);
985
986
  });
986
987
  }
987
988
  };
988
- return loadGLTF(structure['base']).then(function (object) {
989
- object.name = 'MainObject';
989
+ return loadGLTF(structure["base"]).then(function (object) {
990
+ object.name = "MainObject";
990
991
  object.receiveShadow = true;
991
992
  objGroup = object;
992
993
  if (!isEmpty(doorStyles)) {
993
- var normalMap = doorStyles.get('base') || INITIAL_NORMAL_MAP;
994
+ var normalMap = doorStyles.get("base") || INITIAL_NORMAL_MAP;
994
995
  if (counterTop.uri === undefined) {
995
996
  try {
996
997
  counterTop = counterTop.toJS();
997
998
  } catch (error) {
998
999
  //@todo THIS IS A TEMPORARY FIX FOR COUNTERTOP TEXTURE UNDEFINED ISSUE
999
- counterTop.uri = 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg';
1000
+ counterTop.uri = "https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg";
1000
1001
  console.log(error);
1001
1002
  }
1002
1003
  }
@@ -1004,7 +1005,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1004
1005
  counterTop.uri = layer.toJS().counterTop.uri;
1005
1006
  }
1006
1007
  var countTopMap = counterTop.uri;
1007
- var interiorMap = doorStyles.get('interior');
1008
+ var interiorMap = doorStyles.get("interior");
1008
1009
  var countT = loadTexture(countTopMap);
1009
1010
  countT.wrapS = Three.RepeatWrapping;
1010
1011
  countT.wrapT = Three.RepeatWrapping;
@@ -1013,7 +1014,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1013
1014
  var mat2 = null,
1014
1015
  mat3 = null,
1015
1016
  mat4 = null;
1016
- if (normalMap === '') {
1017
+ if (normalMap === "") {
1017
1018
  mat2 = new Three.MeshStandardMaterial({
1018
1019
  color: examplecolor,
1019
1020
  metalness: glossness === 1 ? params.metalness : params.metalness_glossy,
@@ -1030,11 +1031,11 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1030
1031
  }
1031
1032
  // mat2.envMap = textureCube;
1032
1033
 
1033
- if (normalMap !== '') {
1034
+ if (normalMap !== "") {
1034
1035
  var t = loadTexture(normalMap);
1035
1036
  mat2.map = t;
1036
1037
  }
1037
- if (normalMap === '') {
1038
+ if (normalMap === "") {
1038
1039
  mat3 = new Three.MeshStandardMaterial({
1039
1040
  // color: examplecolor,
1040
1041
  metalness: counterTop.metalness,
@@ -1056,13 +1057,13 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1056
1057
  });
1057
1058
  mat4.map = loadTexture(interiorMap);
1058
1059
  for (var j = 0; j < object.children.length; j++) {
1059
- if (object.children[j].name.includes('main')) {}
1060
- if (object.children[j].name.includes('countertop')) {
1060
+ if (object.children[j].name.includes("main")) {}
1061
+ if (object.children[j].name.includes("countertop")) {
1061
1062
  object.children[j].material = mat3;
1062
1063
  object.children[j].receiveShadow = true;
1063
1064
  object.children[j].castShadow = true;
1064
1065
  addEdgesToMesh(object.children[j]);
1065
- } else if (object.children[j].name.includes('_interior_')) {
1066
+ } else if (object.children[j].name.includes("_interior_")) {
1066
1067
  object.children[j].material = mat4;
1067
1068
  } else if (object.children[j].type === OBJTYPE_MESH) {
1068
1069
  object.children[j].material = mat2;
@@ -1072,7 +1073,7 @@ export function render3DItem(element, layer, scene, sizeinfo, structure_json, is
1072
1073
  }
1073
1074
  }
1074
1075
  }, function (reason) {
1075
- console.log('loadGLTF failed for reason:', reason);
1076
+ console.log("loadGLTF failed for reason:", reason);
1076
1077
  objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1077
1078
  }).then(function () {
1078
1079
  return _loadGLTFs(0);
@@ -1086,18 +1087,18 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1086
1087
  var applianceMaterial = element.applianceMaterial;
1087
1088
  if (applianceMaterial.metalness == undefined) applianceMaterial = applianceMaterial.toJS();
1088
1089
  var onLoadItem = function onLoadItem(object) {
1089
- var newAltitude = element.properties.get('altitude').get('_length');
1090
- var newUnit = element.properties.get('altitude').get('_unit') || 'in';
1090
+ var newAltitude = element.properties.get("altitude").get("_length");
1091
+ var newUnit = element.properties.get("altitude").get("_unit") || "in";
1091
1092
  newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
1092
- var newWidth = element.properties.get('width').get('_length');
1093
- var newWidthUnit = element.properties.get('width').get('_unit') || 'in';
1094
- newWidth = convert(newWidth).from(newWidthUnit).to('in');
1095
- var newHeight = element.properties.get('height').get('_length');
1096
- var newHeightUnit = element.properties.get('height').get('_unit') || 'in';
1097
- newHeight = convert(newHeight).from(newHeightUnit).to('in');
1098
- var newDepth = element.properties.get('depth').get('_length');
1099
- var newDepthUnit = element.properties.get('depth').get('_unit') || 'in';
1100
- newDepth = convert(newDepth).from(newDepthUnit).to('in');
1093
+ var newWidth = element.properties.get("width").get("_length");
1094
+ var newWidthUnit = element.properties.get("width").get("_unit") || "in";
1095
+ newWidth = convert(newWidth).from(newWidthUnit).to("in");
1096
+ var newHeight = element.properties.get("height").get("_length");
1097
+ var newHeightUnit = element.properties.get("height").get("_unit") || "in";
1098
+ newHeight = convert(newHeight).from(newHeightUnit).to("in");
1099
+ var newDepth = element.properties.get("depth").get("_length");
1100
+ var newDepthUnit = element.properties.get("depth").get("_unit") || "in";
1101
+ newDepth = convert(newDepth).from(newDepthUnit).to("in");
1101
1102
  object.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
1102
1103
  // Normalize the origin of the object
1103
1104
  var boundingBox = new Three.Box3().setFromObject(object);
@@ -1112,16 +1113,16 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1112
1113
  var name = obj.name;
1113
1114
  var texture,
1114
1115
  textureLoader = new Three.TextureLoader();
1115
- if (name.includes('_black')) {
1116
+ if (name.includes("_black")) {
1116
1117
  obj.material.roughness = 0.4;
1117
1118
  obj.material.metalness = 1.0;
1118
1119
  obj.material.color = new Three.Color(0, 0, 0);
1119
1120
  obj.castShadow = true;
1120
1121
  obj.receiveShadow = true;
1121
1122
  return object;
1122
- } else if (name.includes('_wood')) {
1123
- texture = loadTexture('/assets/img/texture/wood.jpg');
1124
- } else if (name.includes('_glass')) {
1123
+ } else if (name.includes("_wood")) {
1124
+ texture = loadTexture("/assets/img/texture/wood.jpg");
1125
+ } else if (name.includes("_glass")) {
1125
1126
  // texture = loadTexture('/assets/img/texture/glass.jpg');
1126
1127
  var material = new Three.MeshPhysicalMaterial({
1127
1128
  transparent: true,
@@ -1136,7 +1137,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1136
1137
  obj.castShadow = true;
1137
1138
  obj.receiveShadow = true;
1138
1139
  return object;
1139
- } else if (name.includes('_steel')) {
1140
+ } else if (name.includes("_steel")) {
1140
1141
  // texture = loadTexture('/assets/img/texture/steel.jpg');
1141
1142
  var _material2 = new Three.MeshPhysicalMaterial({
1142
1143
  roughness: 0.2,
@@ -1186,16 +1187,16 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1186
1187
  // vertical line - 4 lines around object//////////////////////////
1187
1188
  var vLineGeom = new Three.BufferGeometry();
1188
1189
  var vertices = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z + 1.3];
1189
- vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
1190
+ vLineGeom.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices), 3));
1190
1191
  var vLineGeom1 = new Three.BufferGeometry();
1191
1192
  var vertices1 = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z - 1.3];
1192
- vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
1193
+ vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices1), 3));
1193
1194
  var vLineGeom2 = new Three.BufferGeometry();
1194
1195
  var vertices2 = [max.x, 0, max.z - (max.z - min.z) / 2, max.x + 1.3, 0, max.z - (max.z - min.z) / 2];
1195
- vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
1196
+ vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices2), 3));
1196
1197
  var vLineGeom3 = new Three.BufferGeometry();
1197
1198
  var vertices3 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x - 1.3, 0, max.z - (max.z - min.z) / 2];
1198
- vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
1199
+ vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices3), 3));
1199
1200
  // ///////////////////////////////////////
1200
1201
 
1201
1202
  // set names of transform object
@@ -1208,12 +1209,12 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1208
1209
  color: 0xffffff,
1209
1210
  colorWrite: true
1210
1211
  }));
1211
- rotFillObj.name = 'rotate';
1212
+ rotFillObj.name = "rotate";
1212
1213
  var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
1213
1214
  color: 0xffffff,
1214
1215
  side: Three.DoubleSide
1215
1216
  }));
1216
- upObj.name = 'transUp';
1217
+ upObj.name = "transUp";
1217
1218
  var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
1218
1219
  color: new Three.Color(0xdd6699).convertLinearToSRGB(),
1219
1220
  side: Three.DoubleSide,
@@ -1253,7 +1254,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1253
1254
  vLine3.translateY(0.1);
1254
1255
  upObj.translateOnAxis(uVec, 1);
1255
1256
  upObj.translateY(max.y - min.y + 0.05);
1256
- mBox.name = 'TransformBox';
1257
+ mBox.name = "TransformBox";
1257
1258
  mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
1258
1259
  mBox.scale.set(1.01, 1.01, 1.01);
1259
1260
 
@@ -1281,7 +1282,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1281
1282
  asrtObj.add(mBox);
1282
1283
  asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);
1283
1284
  // asrtObj.translateY(newAltitude / scalevec.y);
1284
- asrtObj.name = 'TransformGizmo';
1285
+ asrtObj.name = "TransformGizmo";
1285
1286
  // add assets Objects Group
1286
1287
  object.add(asrtObj);
1287
1288
 
@@ -1311,7 +1312,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1311
1312
  cachedObject[element.type] = objGroup.clone(); //register to cachedObject
1312
1313
  return onLoadItem(cachedObject[element.type].clone());
1313
1314
  }
1314
- if (keys[i] === 'base') {
1315
+ if (keys[i] === "base") {
1315
1316
  // if base Objects
1316
1317
  i++;
1317
1318
  return _loadGLTFs2(i);
@@ -1320,13 +1321,13 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1320
1321
 
1321
1322
  // load base to start //
1322
1323
  // return loadGLTF(dirName + structure["base"])
1323
- return loadGLTF(structure['base']).then(function (object) {
1324
+ return loadGLTF(structure["base"]).then(function (object) {
1324
1325
  // let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
1325
1326
  // let texture = loadTexture(textureURL);
1326
1327
  // texture.wrapS = Three.MirroredRepeatWrapping;
1327
1328
  // texture.wrapT = Three.MirroredRepeatWrapping;
1328
1329
 
1329
- object.name = 'MainObject';
1330
+ object.name = "MainObject";
1330
1331
  // NOTE: changed appliance emissive color to black
1331
1332
  var mat2 = new Three.MeshStandardMaterial({
1332
1333
  emissive: new Three.Color(0x0d0d0d).convertLinearToSRGB(),
@@ -1344,7 +1345,7 @@ export function render3DApplianceItem(element, layer, scene, sizeinfo, structure
1344
1345
  }
1345
1346
  objGroup = object;
1346
1347
  }, function (reason) {
1347
- console.log('loadGLTF failed for reason:', reason);
1348
+ console.log("loadGLTF failed for reason:", reason);
1348
1349
  objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1349
1350
  }).then(function () {
1350
1351
  return _loadGLTFs2(0);
@@ -1357,21 +1358,21 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1357
1358
  var onLoadItem = function onLoadItem(object) {
1358
1359
  var width = {
1359
1360
  length: sizeinfo.width,
1360
- unit: 'in'
1361
+ unit: "in"
1361
1362
  };
1362
1363
  var depth = {
1363
1364
  length: sizeinfo.depth,
1364
- unit: 'in'
1365
+ unit: "in"
1365
1366
  };
1366
1367
  var height = {
1367
1368
  length: sizeinfo.height,
1368
- unit: 'in'
1369
+ unit: "in"
1369
1370
  };
1370
- var newWidth = convert(width.length).from(width.unit).to('cm');
1371
- var newDepth = convert(depth.length).from(depth.unit).to('cm');
1372
- var newHeight = convert(height.length).from(height.unit).to('cm');
1373
- var newAltitude = element.properties.get('altitude').get('_length');
1374
- var newUnit = element.properties.get('altitude').get('_unit') || 'in';
1371
+ var newWidth = convert(width.length).from(width.unit).to("cm");
1372
+ var newDepth = convert(depth.length).from(depth.unit).to("cm");
1373
+ var newHeight = convert(height.length).from(height.unit).to("cm");
1374
+ var newAltitude = element.properties.get("altitude").get("_length");
1375
+ var newUnit = element.properties.get("altitude").get("_unit") || "in";
1375
1376
  newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
1376
1377
 
1377
1378
  //object.scale.set(newWidth, newHeight, newDepth);
@@ -1418,16 +1419,16 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1418
1419
  // vertical line - 4 lines around object//////////////////////////
1419
1420
  var vLineGeom = new Three.BufferGeometry();
1420
1421
  var vertices = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z + 1.3];
1421
- vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
1422
+ vLineGeom.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices), 3));
1422
1423
  var vLineGeom1 = new Three.BufferGeometry();
1423
1424
  var vertices1 = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z - 1.3];
1424
- vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
1425
+ vLineGeom1.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices1), 3));
1425
1426
  var vLineGeom2 = new Three.BufferGeometry();
1426
1427
  var vertices2 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x + 1.3, 0, max.z - (max.z - min.z) / 2];
1427
- vLineGeom2.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
1428
+ vLineGeom2.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices2), 3));
1428
1429
  var vLineGeom3 = new Three.BufferGeometry();
1429
1430
  var vertices3 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x - 1.3, 0, max.z - (max.z - min.z) / 2];
1430
- vLineGeom3.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
1431
+ vLineGeom3.setAttribute("position", new Three.BufferAttribute(new Float32Array(vertices3), 3));
1431
1432
  // ///////////////////////////////////////
1432
1433
 
1433
1434
  // set names of transform object
@@ -1440,12 +1441,12 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1440
1441
  color: 0xffffff,
1441
1442
  colorWrite: true
1442
1443
  }));
1443
- rotFillObj.name = 'rotate';
1444
+ rotFillObj.name = "rotate";
1444
1445
  var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
1445
1446
  color: 0xffffff,
1446
1447
  side: Three.DoubleSide
1447
1448
  }));
1448
- upObj.name = 'transUp';
1449
+ upObj.name = "transUp";
1449
1450
  var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
1450
1451
  color: 0xdd6699,
1451
1452
  side: Three.DoubleSide,
@@ -1487,7 +1488,7 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1487
1488
  //rotObj.translateOnAxis(uVec, 1);
1488
1489
  upObj.translateOnAxis(uVec, 1);
1489
1490
  upObj.translateY(max.y - min.y);
1490
- mBox.name = 'TransformBox';
1491
+ mBox.name = "TransformBox";
1491
1492
  mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
1492
1493
  mBox.scale.set(1.01, 1.01, 1.01);
1493
1494
 
@@ -1516,7 +1517,7 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1516
1517
  asrtObj.add(mBox);
1517
1518
  asrtObj.scale.set(1, 1, 1);
1518
1519
  //asrtObj.translateY(newAltitude / scalevec.y);
1519
- asrtObj.name = 'TransformGizmo';
1520
+ asrtObj.name = "TransformGizmo";
1520
1521
  // add assets Objects Group
1521
1522
  object.add(asrtObj);
1522
1523
 
@@ -1549,7 +1550,7 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1549
1550
  cachedObject[element.type] = objGroup.clone(); //register to cachedObject
1550
1551
  return onLoadItem(cachedObject[element.type].clone());
1551
1552
  }
1552
- if (keys[i] === 'base') {
1553
+ if (keys[i] === "base") {
1553
1554
  // if base Objects
1554
1555
  i++;
1555
1556
  return _loadGLTFs3(i);
@@ -1558,13 +1559,13 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1558
1559
 
1559
1560
  // load base to start //
1560
1561
  // return loadGLTF(dirName + structure["base"])
1561
- return loadGLTF(structure['base']).then(function (object) {
1562
+ return loadGLTF(structure["base"]).then(function (object) {
1562
1563
  // let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
1563
1564
  // let texture = loadTexture(textureURL);
1564
1565
  // texture.wrapS = Three.MirroredRepeatWrapping;
1565
1566
  // texture.wrapT = Three.MirroredRepeatWrapping;
1566
1567
 
1567
- object.name = 'MainObject';
1568
+ object.name = "MainObject";
1568
1569
  var mat2 = new Three.MeshStandardMaterial({
1569
1570
  emissive: new Three.Color(0x666666).convertLinearToSRGB(),
1570
1571
  metalness: 0.7,
@@ -1580,7 +1581,7 @@ export function render3DLightingItem(element, layer, scene, sizeinfo, structure_
1580
1581
  }
1581
1582
  objGroup = object;
1582
1583
  }, function (reason) {
1583
- console.log('loadGLTF failed for reason:', reason);
1584
+ console.log("loadGLTF failed for reason:", reason);
1584
1585
  objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
1585
1586
  }).then(function () {
1586
1587
  return _loadGLTFs3(0);