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.
- package/es/LiteKitchenConfigurator.js +52 -29
- package/es/LiteRenderer.js +5 -8
- package/es/actions/lines-actions.js +3 -1
- package/es/assets/img/png/helper/video_preview_start.png +0 -0
- 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 +198 -197
- package/es/class/item.js +8 -0
- package/es/class/line.js +14 -2
- package/es/components/viewer2d/item.js +36 -12
- package/es/components/viewer2d/utils.js +2 -2
- package/es/components/viewer2d/viewer2d.js +12 -10
- package/es/components/viewer3d/viewer3d.js +66 -74
- package/es/constants.js +6 -2
- package/es/devLiteRenderer.js +192 -98
- package/es/index.js +104 -14
- package/es/reducers/lines-reducer.js +1 -1
- package/es/utils/geometry.js +161 -0
- package/es/utils/isolate-event-handler.js +268 -114
- package/es/utils/molding.js +234 -2
- package/lib/LiteKitchenConfigurator.js +52 -29
- package/lib/LiteRenderer.js +5 -8
- package/lib/actions/lines-actions.js +3 -1
- package/lib/assets/img/png/helper/video_preview_start.png +0 -0
- 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 +195 -194
- package/lib/class/item.js +8 -0
- package/lib/class/line.js +13 -1
- package/lib/components/viewer2d/item.js +36 -12
- package/lib/components/viewer2d/utils.js +2 -2
- package/lib/components/viewer2d/viewer2d.js +12 -10
- package/lib/components/viewer3d/viewer3d.js +66 -74
- package/lib/constants.js +11 -7
- package/lib/devLiteRenderer.js +186 -92
- package/lib/index.js +104 -14
- package/lib/reducers/lines-reducer.js +1 -1
- package/lib/utils/geometry.js +162 -0
- package/lib/utils/isolate-event-handler.js +267 -113
- package/lib/utils/molding.js +233 -0
- 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
|
|
8
|
-
import React, { useState } from
|
|
9
|
-
import * as Three from
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
44
|
-
thumbnail:
|
|
43
|
+
name: "Edit",
|
|
44
|
+
thumbnail: "/assets/img/svg/3d_item_warning_edit.svg"
|
|
45
45
|
}, {
|
|
46
|
-
name:
|
|
47
|
-
thumbnail:
|
|
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 =
|
|
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(
|
|
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 =
|
|
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 =
|
|
84
|
+
el_DSN = "el_DSN";
|
|
85
85
|
}
|
|
86
|
-
if (el_DSN ===
|
|
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(
|
|
91
|
-
var tempDepth = element.properties.get(
|
|
90
|
+
var tempWidth = element.properties.get("width");
|
|
91
|
+
var tempDepth = element.properties.get("depth");
|
|
92
92
|
width = tempWidth && {
|
|
93
|
-
length: tempWidth.get(
|
|
94
|
-
unit: tempWidth.get(
|
|
93
|
+
length: tempWidth.get("_length"),
|
|
94
|
+
unit: tempWidth.get("_unit")
|
|
95
95
|
};
|
|
96
96
|
depth = tempDepth && {
|
|
97
|
-
length: tempDepth.get(
|
|
98
|
-
unit: tempDepth.get(
|
|
97
|
+
length: tempDepth.get("_length"),
|
|
98
|
+
unit: tempDepth.get("_unit")
|
|
99
99
|
};
|
|
100
|
-
var originalWidth = convert(sizeinfo.width).from(
|
|
101
|
-
var originalDepth = convert(sizeinfo.depth).from(
|
|
102
|
-
var newWidth = convert(width.length).from(width.unit).to(
|
|
103
|
-
var newDepth = convert(depth.length).from(depth.unit).to(
|
|
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 =
|
|
110
|
+
var color = "#eee";
|
|
111
111
|
if (layoutpos == BASE_CABINET_LAYOUTPOS) {
|
|
112
|
-
color =
|
|
112
|
+
color = "#3f8db3";
|
|
113
113
|
}
|
|
114
114
|
if (layoutpos == TALL_CABINET_LAYOUTPOS) {
|
|
115
|
-
color =
|
|
115
|
+
color = "#93b3be";
|
|
116
116
|
}
|
|
117
117
|
if (layoutpos == WALL_CABINET_LAYOUTPOS) {
|
|
118
|
-
color =
|
|
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(
|
|
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:
|
|
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:
|
|
162
|
-
textAnchor:
|
|
163
|
-
fill:
|
|
164
|
-
display:
|
|
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 ?
|
|
170
|
-
strokeWidth:
|
|
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 ==
|
|
179
|
-
if (el_DSN ===
|
|
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:
|
|
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(
|
|
212
|
-
document.getElementById(
|
|
213
|
-
document.getElementById(
|
|
214
|
-
document.getElementById(
|
|
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(
|
|
219
|
-
document.getElementById(
|
|
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:
|
|
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:
|
|
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:
|
|
297
|
+
visibility: "hidden",
|
|
298
298
|
style: {
|
|
299
|
-
pointerEvents:
|
|
299
|
+
pointerEvents: "all",
|
|
300
300
|
opacity: 0.7,
|
|
301
|
-
postion:
|
|
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 ===
|
|
306
|
-
visibility: isWarningItem(element) ?
|
|
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(
|
|
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([
|
|
399
|
-
element = element.setIn([
|
|
400
|
-
element = element.setIn([
|
|
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:
|
|
405
|
+
unit: "in"
|
|
406
406
|
};
|
|
407
407
|
var depth = {
|
|
408
408
|
length: sizeinfo.depth,
|
|
409
|
-
unit:
|
|
409
|
+
unit: "in"
|
|
410
410
|
};
|
|
411
411
|
var height = {
|
|
412
412
|
length: sizeinfo.height,
|
|
413
|
-
unit:
|
|
413
|
+
unit: "in"
|
|
414
414
|
};
|
|
415
|
-
var newWidth = convert(width.length).from(width.unit).to(
|
|
416
|
-
var newDepth = convert(depth.length).from(depth.unit).to(
|
|
417
|
-
var newHeight = convert(height.length).from(height.unit).to(
|
|
418
|
-
var mainName =
|
|
419
|
-
if (element.properties.get(
|
|
420
|
-
if (element.properties.get(
|
|
421
|
-
if (element.properties.get(
|
|
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 =
|
|
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 (
|
|
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(
|
|
442
|
-
color = element.doorStyle.get(
|
|
443
|
-
glossness = element.doorStyle.get(
|
|
444
|
-
handleMaterial.metalness = element.doorStyle.get(
|
|
445
|
-
handleMaterial.roughness = element.doorStyle.get(
|
|
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 =
|
|
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(
|
|
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(
|
|
477
|
-
var newUnit = element.properties.get(
|
|
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 ?
|
|
495
|
-
if (door_match[2] ===
|
|
496
|
-
rotate_match_text = element.properties.toJS().flip_doorhandle ?
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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(
|
|
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(
|
|
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(
|
|
715
|
+
if (name.includes("black") || name.includes("white")) {
|
|
715
716
|
var _color2;
|
|
716
|
-
if (name.includes(
|
|
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] ===
|
|
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,
|
|
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,
|
|
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 +
|
|
767
|
-
var _objGroup = cachedObject[element.type + color +
|
|
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] ===
|
|
775
|
+
if (keys[i] === "animation") {
|
|
775
776
|
// if animation info
|
|
776
777
|
i++;
|
|
777
778
|
return _loadGLTFs(i);
|
|
778
779
|
}
|
|
779
|
-
if (keys[i] ===
|
|
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 +
|
|
787
|
-
return onLoadItem(cachedObject[element.type + color +
|
|
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] ===
|
|
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(
|
|
822
|
+
if (phs[k].indexOf("ph") == -1) {
|
|
822
823
|
var _url = structure[temp[k - 1]];
|
|
823
|
-
if (temp[k - 1] +
|
|
824
|
-
if (structure[temp[k - 1] +
|
|
825
|
-
_url = structure[temp[k - 1] +
|
|
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(
|
|
839
|
-
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] +
|
|
868
|
-
loadUrl = doorStyles.get(keys[i] +
|
|
869
|
-
structure[keys[i] +
|
|
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] +
|
|
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(
|
|
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(
|
|
924
|
-
} else if (!object.children[_j4].name.startsWith(
|
|
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(
|
|
965
|
+
if (placeholder.includes("drawer_door") && placeholder.includes("_handle")) {
|
|
965
966
|
tmp.rotateZ(Math.PI / 2);
|
|
966
967
|
}
|
|
967
|
-
if (placeholder.includes(
|
|
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(
|
|
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[
|
|
989
|
-
object.name =
|
|
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(
|
|
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 =
|
|
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(
|
|
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(
|
|
1060
|
-
if (object.children[j].name.includes(
|
|
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(
|
|
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(
|
|
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(
|
|
1090
|
-
var newUnit = element.properties.get(
|
|
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(
|
|
1093
|
-
var newWidthUnit = element.properties.get(
|
|
1094
|
-
newWidth = convert(newWidth).from(newWidthUnit).to(
|
|
1095
|
-
var newHeight = element.properties.get(
|
|
1096
|
-
var newHeightUnit = element.properties.get(
|
|
1097
|
-
newHeight = convert(newHeight).from(newHeightUnit).to(
|
|
1098
|
-
var newDepth = element.properties.get(
|
|
1099
|
-
var newDepthUnit = element.properties.get(
|
|
1100
|
-
newDepth = convert(newDepth).from(newDepthUnit).to(
|
|
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(
|
|
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(
|
|
1123
|
-
texture = loadTexture(
|
|
1124
|
-
} else if (name.includes(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] ===
|
|
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[
|
|
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 =
|
|
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(
|
|
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:
|
|
1361
|
+
unit: "in"
|
|
1361
1362
|
};
|
|
1362
1363
|
var depth = {
|
|
1363
1364
|
length: sizeinfo.depth,
|
|
1364
|
-
unit:
|
|
1365
|
+
unit: "in"
|
|
1365
1366
|
};
|
|
1366
1367
|
var height = {
|
|
1367
1368
|
length: sizeinfo.height,
|
|
1368
|
-
unit:
|
|
1369
|
+
unit: "in"
|
|
1369
1370
|
};
|
|
1370
|
-
var newWidth = convert(width.length).from(width.unit).to(
|
|
1371
|
-
var newDepth = convert(depth.length).from(depth.unit).to(
|
|
1372
|
-
var newHeight = convert(height.length).from(height.unit).to(
|
|
1373
|
-
var newAltitude = element.properties.get(
|
|
1374
|
-
var newUnit = element.properties.get(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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] ===
|
|
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[
|
|
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 =
|
|
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(
|
|
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);
|