kitchen-simulator 3.1.14 → 4.0.0-alpha.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/LiteKitchenConfigurator.js +204 -24
- package/es/LiteRenderer.js +277 -12
- package/es/actions/items-actions.js +6 -10
- package/es/actions/lines-actions.js +1 -3
- package/es/actions/project-actions.js +5 -15
- package/es/assets/Window.hdr +2100 -0
- package/es/assets/gltf/door_sliding.bin +0 -0
- package/es/assets/img/1.jpg +0 -0
- package/es/catalog/areas/area/planner-element.js +5 -10
- package/es/catalog/catalog.js +4 -1
- package/es/catalog/factories/area-factory-3d.js +17 -18
- package/es/catalog/factories/wall-factory-3d.js +2 -2
- package/es/catalog/factories/wall-factory.js +8 -8
- package/es/catalog/lines/wall/planner-element.js +9 -18
- package/es/catalog/utils/exporter.js +3 -6
- package/es/catalog/utils/item-loader.js +197 -202
- package/es/catalog/utils/mtl-loader.js +2 -2
- package/es/catalog/utils/obj-loader.js +2 -2
- package/es/class/item.js +127 -107
- package/es/class/line.js +2 -14
- package/es/class/project.js +44 -150
- package/es/components/content.js +6 -19
- package/es/components/viewer2d/grids/grid-streak.js +1 -1
- package/es/components/viewer2d/item.js +51 -84
- package/es/components/viewer2d/line.js +243 -315
- package/es/components/viewer2d/ruler.js +36 -16
- package/es/components/viewer2d/rulerDist.js +75 -44
- package/es/components/viewer2d/utils.js +0 -6
- package/es/components/viewer2d/viewer2d.js +205 -301
- package/es/components/viewer3d/front3D.js +2 -3
- package/es/components/viewer3d/libs/mtl-loader.js +2 -2
- package/es/components/viewer3d/libs/obj-loader.js +2 -2
- package/es/components/viewer3d/libs/orbit-controls.js +4 -3
- package/es/components/viewer3d/libs/pointer-lock-controls.js +7 -6
- package/es/components/viewer3d/viewer3d.js +80 -127
- package/es/constants.js +3 -110
- package/es/devLiteRenderer.js +38 -597
- package/es/index.js +86 -16
- package/es/models.js +5 -8
- package/es/plugins/SVGLoader.js +5 -7
- package/es/plugins/keyboard.js +6 -15
- package/es/reducers/items-reducer.js +5 -5
- package/es/reducers/lines-reducer.js +1 -1
- package/es/reducers/project-reducer.js +3 -5
- package/es/shared-style.js +4 -4
- package/es/utils/geometry.js +0 -161
- package/es/utils/get-edges-of-subgraphs.js +1 -1
- package/es/utils/graph-cycles.js +1 -1
- package/es/utils/graph.js +1 -1
- package/es/utils/helper.js +2 -67
- package/es/utils/isolate-event-handler.js +124 -1367
- package/es/utils/molding.js +2 -238
- package/lib/LiteKitchenConfigurator.js +205 -25
- package/lib/LiteRenderer.js +278 -13
- package/lib/actions/items-actions.js +6 -10
- package/lib/actions/lines-actions.js +1 -3
- package/lib/actions/project-actions.js +4 -15
- package/lib/assets/Window.hdr +2100 -0
- package/lib/assets/gltf/door_sliding.bin +0 -0
- package/lib/assets/img/1.jpg +0 -0
- package/lib/catalog/areas/area/planner-element.js +5 -11
- package/lib/catalog/catalog.js +4 -1
- package/lib/catalog/factories/area-factory-3d.js +14 -15
- package/lib/catalog/factories/wall-factory-3d.js +2 -2
- package/lib/catalog/factories/wall-factory.js +8 -8
- package/lib/catalog/lines/wall/planner-element.js +9 -19
- package/lib/catalog/utils/exporter.js +3 -6
- package/lib/catalog/utils/item-loader.js +194 -199
- package/lib/catalog/utils/mtl-loader.js +2 -9
- package/lib/catalog/utils/obj-loader.js +2 -10
- package/lib/class/item.js +125 -105
- package/lib/class/line.js +1 -13
- package/lib/class/project.js +43 -149
- package/lib/components/content.js +6 -19
- package/lib/components/viewer2d/grids/grid-streak.js +1 -1
- package/lib/components/viewer2d/item.js +50 -83
- package/lib/components/viewer2d/line.js +242 -315
- package/lib/components/viewer2d/ruler.js +35 -15
- package/lib/components/viewer2d/rulerDist.js +75 -44
- package/lib/components/viewer2d/utils.js +0 -7
- package/lib/components/viewer2d/viewer2d.js +205 -299
- package/lib/components/viewer3d/front3D.js +2 -3
- package/lib/components/viewer3d/libs/mtl-loader.js +2 -9
- package/lib/components/viewer3d/libs/obj-loader.js +2 -9
- package/lib/components/viewer3d/libs/orbit-controls.js +5 -11
- package/lib/components/viewer3d/libs/pointer-lock-controls.js +7 -13
- package/lib/components/viewer3d/viewer3d.js +79 -125
- package/lib/constants.js +7 -115
- package/lib/devLiteRenderer.js +33 -592
- package/lib/index.js +86 -16
- package/lib/models.js +5 -8
- package/lib/plugins/SVGLoader.js +5 -7
- package/lib/plugins/keyboard.js +6 -15
- package/lib/reducers/items-reducer.js +5 -5
- package/lib/reducers/lines-reducer.js +1 -1
- package/lib/reducers/project-reducer.js +2 -4
- package/lib/shared-style.js +4 -4
- package/lib/utils/geometry.js +0 -162
- package/lib/utils/get-edges-of-subgraphs.js +1 -6
- package/lib/utils/graph-cycles.js +8 -7
- package/lib/utils/graph.js +1 -6
- package/lib/utils/helper.js +3 -70
- package/lib/utils/isolate-event-handler.js +121 -1364
- package/lib/utils/molding.js +0 -238
- package/package.json +1 -1
|
@@ -24,22 +24,21 @@ var _models = require("../../models");
|
|
|
24
24
|
var GeomUtils = _interopRequireWildcard(require("./geom-utils"));
|
|
25
25
|
var _loadObj = require("./load-obj");
|
|
26
26
|
var _helper = require("../../utils/helper");
|
|
27
|
-
var _utils = require("../../components/viewer2d/utils");
|
|
28
27
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
29
28
|
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; }
|
|
30
29
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
31
|
-
var INITIAL_NORMAL_MAP =
|
|
30
|
+
var INITIAL_NORMAL_MAP = '';
|
|
32
31
|
|
|
33
32
|
// env Map ///////////////
|
|
34
33
|
var paramsCounter = {
|
|
35
|
-
envMap:
|
|
34
|
+
envMap: 'HDR',
|
|
36
35
|
roughness: 0.6,
|
|
37
36
|
metalness: 0.3,
|
|
38
37
|
exposure: 1
|
|
39
38
|
// debug: true
|
|
40
39
|
};
|
|
41
40
|
var params = {
|
|
42
|
-
envMap:
|
|
41
|
+
envMap: 'HDR',
|
|
43
42
|
roughness: 0.9,
|
|
44
43
|
metalness: 0.1,
|
|
45
44
|
metalness_glossy: 0.2,
|
|
@@ -47,18 +46,18 @@ var params = {
|
|
|
47
46
|
// debug: false
|
|
48
47
|
};
|
|
49
48
|
var paramsModel = {
|
|
50
|
-
envMap:
|
|
49
|
+
envMap: 'HDR',
|
|
51
50
|
roughness: 0.9,
|
|
52
51
|
metalness: 0.2,
|
|
53
52
|
exposure: 1.0
|
|
54
53
|
// debug: false
|
|
55
54
|
};
|
|
56
55
|
var buttons = [{
|
|
57
|
-
name:
|
|
58
|
-
thumbnail:
|
|
56
|
+
name: 'Edit',
|
|
57
|
+
thumbnail: '/assets/img/svg/3d_item_warning_edit.svg'
|
|
59
58
|
}, {
|
|
60
|
-
name:
|
|
61
|
-
thumbnail:
|
|
59
|
+
name: 'Info',
|
|
60
|
+
thumbnail: '/assets/img/svg/3d_item_warning_info.svg'
|
|
62
61
|
}];
|
|
63
62
|
|
|
64
63
|
// /////////////////////////
|
|
@@ -74,7 +73,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
74
73
|
var x = element.x,
|
|
75
74
|
y = element.y,
|
|
76
75
|
rotation = element.rotation;
|
|
77
|
-
var el_DSN =
|
|
76
|
+
var el_DSN = 'el_DSN',
|
|
78
77
|
doorStylesKeys = [];
|
|
79
78
|
var _element = element.toJS();
|
|
80
79
|
if (_element.doorStyle !== undefined) {
|
|
@@ -82,10 +81,10 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
82
81
|
doorStylesKeys = Object.keys(_element.doorStyle.doorStyles);
|
|
83
82
|
}
|
|
84
83
|
}
|
|
85
|
-
if ((doorStylesKeys.includes(
|
|
84
|
+
if ((doorStylesKeys.includes('euro_length') || doorStylesKeys.includes('euro_width') || doorStylesKeys.includes('euro_shape_svg')) && _element.doorStyle.doorStyles.is_euro_cds) {
|
|
86
85
|
el_DSN = _element.doorStyle.door_style_name;
|
|
87
86
|
} else {
|
|
88
|
-
el_DSN =
|
|
87
|
+
el_DSN = 'el_DSN';
|
|
89
88
|
}
|
|
90
89
|
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;
|
|
91
90
|
if (doorStylesKeys.length > 0) {
|
|
@@ -95,41 +94,41 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
95
94
|
el_euro_shape_svg = _element.doorStyle.doorStyles.euro_shape_svg;
|
|
96
95
|
}
|
|
97
96
|
if (el_euro_length === undefined && el_euro_width === undefined) {
|
|
98
|
-
el_DSN =
|
|
97
|
+
el_DSN = 'el_DSN';
|
|
99
98
|
}
|
|
100
|
-
if (el_DSN ===
|
|
99
|
+
if (el_DSN === 'Euro & Frameless') {
|
|
101
100
|
// sizeinfo["depth"] = el_euro_length;
|
|
102
101
|
// sizeinfo["width"] = el_euro_width;
|
|
103
102
|
}
|
|
104
|
-
var tempWidth = element.properties.get(
|
|
105
|
-
var tempDepth = element.properties.get(
|
|
103
|
+
var tempWidth = element.properties.get('width');
|
|
104
|
+
var tempDepth = element.properties.get('depth');
|
|
106
105
|
width = tempWidth && {
|
|
107
|
-
length: tempWidth.get(
|
|
108
|
-
unit: tempWidth.get(
|
|
106
|
+
length: tempWidth.get('_length'),
|
|
107
|
+
unit: tempWidth.get('_unit')
|
|
109
108
|
};
|
|
110
109
|
depth = tempDepth && {
|
|
111
|
-
length: tempDepth.get(
|
|
112
|
-
unit: tempDepth.get(
|
|
110
|
+
length: tempDepth.get('_length'),
|
|
111
|
+
unit: tempDepth.get('_unit')
|
|
113
112
|
};
|
|
114
|
-
var originalWidth = (0, _convertUnitsLite.convert)(sizeinfo.width).from(
|
|
115
|
-
var originalDepth = (0, _convertUnitsLite.convert)(sizeinfo.depth).from(
|
|
116
|
-
var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to(
|
|
117
|
-
var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to(
|
|
113
|
+
var originalWidth = (0, _convertUnitsLite.convert)(sizeinfo.width).from('in').to('cm');
|
|
114
|
+
var originalDepth = (0, _convertUnitsLite.convert)(sizeinfo.depth).from('in').to('cm');
|
|
115
|
+
var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to('cm');
|
|
116
|
+
var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to('cm');
|
|
118
117
|
var padding = (0, _convertUnitsLite.convert)(_constants.SHAPE_SVG_PADDING).from(_constants.UNIT_INCH).to(_constants.UNIT_CENTIMETER);
|
|
119
118
|
var angle = element.rotation + 90;
|
|
120
119
|
var textRotation = 0;
|
|
121
120
|
if (Math.sin(angle * Math.PI / 180) < 0) {
|
|
122
121
|
textRotation = 180;
|
|
123
122
|
}
|
|
124
|
-
var color =
|
|
123
|
+
var color = '#eee';
|
|
125
124
|
if (layoutpos == _constants.BASE_CABINET_LAYOUTPOS) {
|
|
126
|
-
color =
|
|
125
|
+
color = '#3f8db3';
|
|
127
126
|
}
|
|
128
127
|
if (layoutpos == _constants.TALL_CABINET_LAYOUTPOS) {
|
|
129
|
-
color =
|
|
128
|
+
color = '#93b3be';
|
|
130
129
|
}
|
|
131
130
|
if (layoutpos == _constants.WALL_CABINET_LAYOUTPOS) {
|
|
132
|
-
color =
|
|
131
|
+
color = '#48b08dcc';
|
|
133
132
|
}
|
|
134
133
|
var splitStr = [];
|
|
135
134
|
var txtContent = [];
|
|
@@ -143,7 +142,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
143
142
|
var dcId,
|
|
144
143
|
doorStyle = element.doorStyle;
|
|
145
144
|
if (doorStyle instanceof _immutable.Map) {
|
|
146
|
-
dcId = doorStyle.get(
|
|
145
|
+
dcId = doorStyle.get('id');
|
|
147
146
|
} else {
|
|
148
147
|
dcId = doorStyle.id;
|
|
149
148
|
}
|
|
@@ -162,7 +161,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
162
161
|
splitStr.push(type.slice(lineCount * rowCount));
|
|
163
162
|
splitStr.forEach(function (el, key) {
|
|
164
163
|
txtContent.push(/*#__PURE__*/_react["default"].createElement("text", {
|
|
165
|
-
key:
|
|
164
|
+
key: 'text' + key,
|
|
166
165
|
x: "0",
|
|
167
166
|
y: newDepth / 2 - 12,
|
|
168
167
|
dy: 16 * key,
|
|
@@ -172,16 +171,16 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
172
171
|
,
|
|
173
172
|
style: {
|
|
174
173
|
fontWeight: 500,
|
|
175
|
-
fontSize:
|
|
176
|
-
textAnchor:
|
|
177
|
-
fill:
|
|
178
|
-
display:
|
|
174
|
+
fontSize: '7px',
|
|
175
|
+
textAnchor: 'middle',
|
|
176
|
+
fill: '#FFF',
|
|
177
|
+
display: 'block'
|
|
179
178
|
}
|
|
180
179
|
}, el));
|
|
181
180
|
});
|
|
182
181
|
var style = {
|
|
183
|
-
stroke: element.selected ?
|
|
184
|
-
strokeWidth:
|
|
182
|
+
stroke: element.selected ? '#565658' : '#565658',
|
|
183
|
+
strokeWidth: '2px',
|
|
185
184
|
fill: color
|
|
186
185
|
};
|
|
187
186
|
// let arrow_style = { stroke: element.selected ? '#0096fd' : null, strokeWidth: "2px", fill: "#84e1ce" };
|
|
@@ -189,8 +188,9 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
189
188
|
var rendered = null;
|
|
190
189
|
var svg_url, svg_width, svg_depth;
|
|
191
190
|
if (shape_svg || el_euro_shape_svg) {
|
|
192
|
-
|
|
193
|
-
|
|
191
|
+
var _element$toJS$doorSty;
|
|
192
|
+
if (typeof shape_svg == 'string' || typeof el_euro_shape_svg == 'string') {
|
|
193
|
+
if (el_DSN === 'Euro & Frameless' && el_is_euro_cds) {
|
|
194
194
|
svg_url = el_euro_shape_svg;
|
|
195
195
|
svg_width = newWidth;
|
|
196
196
|
svg_depth = newDepth;
|
|
@@ -217,21 +217,17 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
217
217
|
var warning_buttons = /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("g", {
|
|
218
218
|
id: "warning_info_2d",
|
|
219
219
|
style: {
|
|
220
|
-
cursor:
|
|
220
|
+
cursor: 'pointer',
|
|
221
221
|
transform: "translate(".concat(-transX, "px, ").concat(-transY, "px)")
|
|
222
222
|
},
|
|
223
223
|
onMouseEnter: function onMouseEnter(event) {
|
|
224
224
|
var bbox = event.target.getBoundingClientRect();
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
document.getElementById("warning_box_2d").style.left = "".concat(bbox.left, "px");
|
|
229
|
-
}
|
|
225
|
+
document.getElementById('warning_box_2d').style.display = 'flex';
|
|
226
|
+
document.getElementById('warning_box_2d').style.top = "".concat(bbox.top - 60, "px");
|
|
227
|
+
document.getElementById('warning_box_2d').style.left = "".concat(bbox.left, "px");
|
|
230
228
|
},
|
|
231
229
|
onMouseLeave: function onMouseLeave() {
|
|
232
|
-
|
|
233
|
-
document.getElementById("warning_box_2d").style.display = "none";
|
|
234
|
-
}
|
|
230
|
+
document.getElementById('warning_box_2d').style.display = 'none';
|
|
235
231
|
}
|
|
236
232
|
}, /*#__PURE__*/_react["default"].createElement("circle", {
|
|
237
233
|
cx: 0,
|
|
@@ -249,7 +245,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
249
245
|
href: buttons[1].thumbnail
|
|
250
246
|
})), /*#__PURE__*/_react["default"].createElement("g", {
|
|
251
247
|
style: {
|
|
252
|
-
cursor:
|
|
248
|
+
cursor: 'pointer',
|
|
253
249
|
transform: "translate(".concat(transX, "px, ").concat(transY, "px)")
|
|
254
250
|
},
|
|
255
251
|
"data-element-root": true,
|
|
@@ -295,7 +291,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
295
291
|
}, /*#__PURE__*/_react["default"].createElement("image", {
|
|
296
292
|
preserveAspectRatio: "none",
|
|
297
293
|
style: {
|
|
298
|
-
pointerEvents:
|
|
294
|
+
pointerEvents: 'none'
|
|
299
295
|
},
|
|
300
296
|
href: svg_url,
|
|
301
297
|
width: "".concat(newWidth + 2 * padding_width),
|
|
@@ -308,16 +304,18 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
308
304
|
y: "".concat(padding_depth),
|
|
309
305
|
width: "".concat(newWidth),
|
|
310
306
|
height: "".concat(newDepth),
|
|
311
|
-
visibility:
|
|
307
|
+
visibility: 'hidden',
|
|
312
308
|
style: {
|
|
313
|
-
pointerEvents:
|
|
309
|
+
pointerEvents: 'all',
|
|
314
310
|
opacity: 0.7,
|
|
315
|
-
postion:
|
|
311
|
+
postion: 'relative'
|
|
316
312
|
}
|
|
317
313
|
}), /*#__PURE__*/_react["default"].createElement("g", {
|
|
318
314
|
transform: "translate(".concat(padding_width, ",").concat(padding_depth, ")")
|
|
319
|
-
}, txtContent)), element.category ===
|
|
320
|
-
visibility: (0
|
|
315
|
+
}, txtContent)), element.category === 'cabinet' && /*#__PURE__*/_react["default"].createElement("g", {
|
|
316
|
+
visibility: (element === null || element === void 0 || (_element$toJS$doorSty = element.toJS().doorStyle) === null || _element$toJS$doorSty === void 0 || (_element$toJS$doorSty = _element$toJS$doorSty.doorStyles) === null || _element$toJS$doorSty === void 0 || (_element$toJS$doorSty = _element$toJS$doorSty.cds) === null || _element$toJS$doorSty === void 0 ? void 0 : _element$toJS$doorSty.filter(function (cd) {
|
|
317
|
+
return cd.itemID == (element === null || element === void 0 ? void 0 : element.getIn(['itemID']));
|
|
318
|
+
}).length) > 0 ? 'hidden' : 'visible'
|
|
321
319
|
}, warning_buttons)));
|
|
322
320
|
} else {
|
|
323
321
|
rendered = /*#__PURE__*/_react["default"].createElement("g", {
|
|
@@ -404,38 +402,38 @@ var assignUVs = function assignUVs(geometry) {
|
|
|
404
402
|
function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner) {
|
|
405
403
|
var mode = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
406
404
|
if (element.doorStyle.constructor !== _immutable.Map) {
|
|
407
|
-
element = element.set(
|
|
405
|
+
element = element.set('doorStyle', (0, _immutable.fromJS)(element.doorStyle));
|
|
408
406
|
}
|
|
409
|
-
if (element.doorStyle.toJS().handle_gltf !==
|
|
407
|
+
if (element.doorStyle.toJS().handle_gltf !== '') {
|
|
410
408
|
// Check element has doorHandle
|
|
411
409
|
for (var i = 1; i < 10; i++) {
|
|
412
|
-
element = element.setIn([
|
|
413
|
-
element = element.setIn([
|
|
414
|
-
element = element.setIn([
|
|
410
|
+
element = element.setIn(['doorStyle', 'doorStyles', 'door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
|
|
411
|
+
element = element.setIn(['doorStyle', 'doorStyles', 'fixed_drawer_door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
|
|
412
|
+
element = element.setIn(['doorStyle', 'doorStyles', 'drawer_door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
|
|
415
413
|
}
|
|
416
414
|
}
|
|
417
415
|
var width = {
|
|
418
416
|
length: sizeinfo.width,
|
|
419
|
-
unit:
|
|
417
|
+
unit: 'in'
|
|
420
418
|
};
|
|
421
419
|
var depth = {
|
|
422
420
|
length: sizeinfo.depth,
|
|
423
|
-
unit:
|
|
421
|
+
unit: 'in'
|
|
424
422
|
};
|
|
425
423
|
var height = {
|
|
426
424
|
length: sizeinfo.height,
|
|
427
|
-
unit:
|
|
425
|
+
unit: 'in'
|
|
428
426
|
};
|
|
429
|
-
var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to(
|
|
430
|
-
var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to(
|
|
431
|
-
var newHeight = (0, _convertUnitsLite.convert)(height.length).from(height.unit).to(
|
|
432
|
-
var mainName =
|
|
433
|
-
if (element.properties.get(
|
|
434
|
-
if (element.properties.get(
|
|
435
|
-
if (element.properties.get(
|
|
427
|
+
var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to('in');
|
|
428
|
+
var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to('in');
|
|
429
|
+
var newHeight = (0, _convertUnitsLite.convert)(height.length).from(height.unit).to('in');
|
|
430
|
+
var mainName = ''; // to get name structure//
|
|
431
|
+
if (element.properties.get('width')) newWidth = element.getIn(['properties', 'width', '_length']);
|
|
432
|
+
if (element.properties.get('depth')) newDepth = element.getIn(['properties', 'depth', '_length']);
|
|
433
|
+
if (element.properties.get('height')) newHeight = element.getIn(['properties', 'height', '_length']);
|
|
436
434
|
var structure = structure_json;
|
|
437
435
|
// structure.push({name:'model', url: '/assets/model/DCM.gltf'});
|
|
438
|
-
structure.model =
|
|
436
|
+
structure.model = '/assets/model/DCM.gltf';
|
|
439
437
|
var placeholders = structure.placeholders;
|
|
440
438
|
var doorStyles = null;
|
|
441
439
|
var color = 0xffffff,
|
|
@@ -445,26 +443,25 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
445
443
|
if (layer.toJS().counterTop.uri) {
|
|
446
444
|
counterTop.uri = layer.toJS().counterTop.uri;
|
|
447
445
|
}
|
|
448
|
-
if (
|
|
446
|
+
if ('name' in element.doorStyle) {
|
|
449
447
|
doorStyles = new _immutable.Map(element.doorStyle.doorStyles);
|
|
450
448
|
color = element.doorStyle.color;
|
|
451
449
|
glossness = element.doorStyle.glossness;
|
|
452
450
|
handleMaterial.metalness = element.doorStyle.metalness;
|
|
453
451
|
handleMaterial.roughness = element.doorStyle.roughness;
|
|
454
452
|
} else if (element.doorStyle != null && element.doorStyle) {
|
|
455
|
-
doorStyles = element.doorStyle.get(
|
|
456
|
-
color = element.doorStyle.get(
|
|
457
|
-
glossness = element.doorStyle.get(
|
|
458
|
-
handleMaterial.metalness = element.doorStyle.get(
|
|
459
|
-
handleMaterial.roughness = element.doorStyle.get(
|
|
453
|
+
doorStyles = element.doorStyle.get('doorStyles');
|
|
454
|
+
color = element.doorStyle.get('color');
|
|
455
|
+
glossness = element.doorStyle.get('glossness');
|
|
456
|
+
handleMaterial.metalness = element.doorStyle.get('metalness');
|
|
457
|
+
handleMaterial.roughness = element.doorStyle.get('roughness');
|
|
460
458
|
}
|
|
461
|
-
if (color === undefined) color =
|
|
459
|
+
if (color === undefined) color = '#ffffff';
|
|
462
460
|
if (glossness === undefined) glossness = 1;
|
|
463
461
|
var tempDoorStyles = doorStyles.toJS();
|
|
464
462
|
var tempPlaceholders = structure.tempPlaceholders;
|
|
465
463
|
var tPlaceholders = tempPlaceholders.find(function (el) {
|
|
466
464
|
return el.id === tempDoorStyles.cabinet_door_style_id;
|
|
467
|
-
// return el.id === tempDoorStyles.cds[0].cabinet_door_style_id;
|
|
468
465
|
});
|
|
469
466
|
if (tPlaceholders !== undefined) {
|
|
470
467
|
placeholders = tPlaceholders.placeholders;
|
|
@@ -483,13 +480,13 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
483
480
|
areaMaterial.side = Three.DoubleSide;
|
|
484
481
|
// areaMaterial.envMap = textureCube;
|
|
485
482
|
if ((0, _helper.isEmpty)(doorStyles)) {
|
|
486
|
-
var normalMap = doorStyles.get(
|
|
483
|
+
var normalMap = doorStyles.get('base') || INITIAL_NORMAL_MAP;
|
|
487
484
|
var interiortexture = loadTexture(normalMap);
|
|
488
485
|
applyTexture(areaMaterial, interiortexture, 100, 100);
|
|
489
486
|
}
|
|
490
487
|
var object1 = object;
|
|
491
|
-
var newAltitude = element.properties.get(
|
|
492
|
-
var newUnit = element.properties.get(
|
|
488
|
+
var newAltitude = element.properties.get('altitude').get('_length');
|
|
489
|
+
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
493
490
|
newAltitude = (0, _convertUnitsLite.convert)(newAltitude).from(newUnit).to(scene.unit);
|
|
494
491
|
var _element = element.toJS();
|
|
495
492
|
if (!_element.doorStyle.doorStyles.is_euro_cds) {
|
|
@@ -506,27 +503,27 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
506
503
|
var door_match = child.name.match(matchStr);
|
|
507
504
|
if (door_match && door_match.length > 2) {
|
|
508
505
|
var _child$children$;
|
|
509
|
-
var rotate_match_text = element.properties.toJS().flip_doorhandle ?
|
|
510
|
-
if (door_match[2] ===
|
|
511
|
-
rotate_match_text = element.properties.toJS().flip_doorhandle ?
|
|
506
|
+
var rotate_match_text = element.properties.toJS().flip_doorhandle ? 'rotate_L' : 'rotate_R';
|
|
507
|
+
if (door_match[2] === '_L') {
|
|
508
|
+
rotate_match_text = element.properties.toJS().flip_doorhandle ? 'rotate_R' : 'rotate_L';
|
|
512
509
|
}
|
|
513
510
|
var isDoubleDoor = door_match && door_match[2] !== undefined;
|
|
514
511
|
(_child$children$ = child.children[0]) === null || _child$children$ === void 0 || _child$children$.children.forEach(function (it) {
|
|
515
512
|
var _it$name, _it$children;
|
|
516
|
-
if (it !== null && it !== void 0 && (_it$name = it.name) !== null && _it$name !== void 0 && _it$name.includes(
|
|
513
|
+
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) {
|
|
517
514
|
var _child$name, _child$name2, _object1$children, _t0$name, _t0$children;
|
|
518
|
-
var tname = child !== null && child !== void 0 && (_child$name = child.name) !== null && _child$name !== void 0 && _child$name.endsWith(
|
|
515
|
+
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');
|
|
519
516
|
var tmp = (object1 === null || object1 === void 0 || (_object1$children = object1.children) === null || _object1$children === void 0 ? void 0 : _object1$children.filter(function (item) {
|
|
520
517
|
return (item === null || item === void 0 ? void 0 : item.name) === tname;
|
|
521
518
|
})) || [];
|
|
522
519
|
var t0 = tmp[0];
|
|
523
|
-
var filterStr = t0 !== null && t0 !== void 0 && (_t0$name = t0.name) !== null && _t0$name !== void 0 && _t0$name.endsWith(
|
|
520
|
+
var filterStr = t0 !== null && t0 !== void 0 && (_t0$name = t0.name) !== null && _t0$name !== void 0 && _t0$name.endsWith('_L') ? 'rotate_L' : 'rotate_R';
|
|
524
521
|
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) {
|
|
525
522
|
var _item$name;
|
|
526
523
|
return item === null || item === void 0 || (_item$name = item.name) === null || _item$name === void 0 ? void 0 : _item$name.endsWith(filterStr);
|
|
527
524
|
})) || [];
|
|
528
525
|
var tpos0 = tposArr[0];
|
|
529
|
-
if (it.name.includes(
|
|
526
|
+
if (it.name.includes('base_end')) {
|
|
530
527
|
var _it$position$x, _it$position, _it$position$y, _it$position2, _tpos0$position$x, _tpos0$position;
|
|
531
528
|
door_animate_offset[child.name] = {
|
|
532
529
|
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,
|
|
@@ -594,16 +591,16 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
594
591
|
// vertical line - 4 lines around object//////////////////////////
|
|
595
592
|
var vLineGeom = new Three.BufferGeometry();
|
|
596
593
|
var vertices = [(max.x - min.x) / 2 + min.x, 0, max.z, (max.x - min.x) / 2 + min.x, 0, max.z + 1.3];
|
|
597
|
-
vLineGeom.setAttribute(
|
|
594
|
+
vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
|
|
598
595
|
var vLineGeom1 = new Three.BufferGeometry();
|
|
599
596
|
var vertices1 = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z - 1.3];
|
|
600
|
-
vLineGeom1.setAttribute(
|
|
597
|
+
vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
|
|
601
598
|
var vLineGeom2 = new Three.BufferGeometry();
|
|
602
599
|
var vertices2 = [max.x, 0, max.z - (max.z - min.z) / 2, max.x + 1.3, 0, max.z - (max.z - min.z) / 2];
|
|
603
|
-
vLineGeom2.setAttribute(
|
|
600
|
+
vLineGeom2.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
|
|
604
601
|
var vLineGeom3 = new Three.BufferGeometry();
|
|
605
602
|
var vertices3 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x - 1.3, 0, max.z - (max.z - min.z) / 2];
|
|
606
|
-
vLineGeom3.setAttribute(
|
|
603
|
+
vLineGeom3.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
|
|
607
604
|
// ///////////////////////////////////////
|
|
608
605
|
|
|
609
606
|
// set names of transform object
|
|
@@ -616,12 +613,12 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
616
613
|
color: new Three.Color(0xffffff).convertLinearToSRGB(),
|
|
617
614
|
colorWrite: true
|
|
618
615
|
}));
|
|
619
|
-
rotFillObj.name =
|
|
616
|
+
rotFillObj.name = 'rotate';
|
|
620
617
|
var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
|
|
621
618
|
color: new Three.Color(0xffffff).convertLinearToSRGB(),
|
|
622
619
|
side: Three.DoubleSide
|
|
623
620
|
}));
|
|
624
|
-
upObj.name =
|
|
621
|
+
upObj.name = 'transUp';
|
|
625
622
|
var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
|
|
626
623
|
color: new Three.Color(0xdd6699).convertLinearToSRGB(),
|
|
627
624
|
side: Three.DoubleSide,
|
|
@@ -663,7 +660,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
663
660
|
//rotObj.translateOnAxis(uVec, 1);
|
|
664
661
|
upObj.translateOnAxis(uVec, 1);
|
|
665
662
|
upObj.translateY(max.y - min.y);
|
|
666
|
-
mBox.name =
|
|
663
|
+
mBox.name = 'TransformBox';
|
|
667
664
|
mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
|
|
668
665
|
mBox.scale.set(1.01, 1.01, 1.01);
|
|
669
666
|
|
|
@@ -692,7 +689,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
692
689
|
asrtObj.add(mBox);
|
|
693
690
|
asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);
|
|
694
691
|
//asrtObj.translateY(newAltitude / scalevec.y);
|
|
695
|
-
asrtObj.name =
|
|
692
|
+
asrtObj.name = 'TransformGizmo';
|
|
696
693
|
// add assets Objects Group
|
|
697
694
|
object1.add(asrtObj);
|
|
698
695
|
|
|
@@ -705,7 +702,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
705
702
|
SceneCreator.getDistances(layer);
|
|
706
703
|
}, 100);
|
|
707
704
|
}
|
|
708
|
-
var flip_doorhandle = element.properties.get(
|
|
705
|
+
var flip_doorhandle = element.properties.get('flip_doorhandle');
|
|
709
706
|
if (flip_doorhandle) {
|
|
710
707
|
SceneCreator.updateDoorHandleMesh(element, object1, true);
|
|
711
708
|
}
|
|
@@ -721,14 +718,14 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
721
718
|
transparency: 0.8
|
|
722
719
|
});
|
|
723
720
|
obj.material = material;
|
|
724
|
-
} else if (name.startsWith(
|
|
721
|
+
} else if (name.startsWith('sink_')) {
|
|
725
722
|
// texture = loadTexture('/assets/img/texture/steel.jpg');
|
|
726
723
|
|
|
727
724
|
var _material;
|
|
728
725
|
// Get color from name
|
|
729
|
-
if (name.includes(
|
|
726
|
+
if (name.includes('black') || name.includes('white')) {
|
|
730
727
|
var _color2;
|
|
731
|
-
if (name.includes(
|
|
728
|
+
if (name.includes('black')) {
|
|
732
729
|
_color2 = new Three.Color(0x555555).convertLinearToSRGB();
|
|
733
730
|
} else {
|
|
734
731
|
_color2 = 0xffffff;
|
|
@@ -761,14 +758,14 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
761
758
|
var open_doors = element.toJS().properties.open_doors;
|
|
762
759
|
var object_match = obj.name.match(/\d_(interior_drawer[^LR1-9]*)(_[LR1-9])?$/) || obj.name.match(matchStr);
|
|
763
760
|
if (object_match && object_match.length > 2) {
|
|
764
|
-
var isDoor = object_match[1] ===
|
|
761
|
+
var isDoor = object_match[1] === 'door';
|
|
765
762
|
if (isDoor) {
|
|
766
763
|
var offsetData = object1.userData.door_animate_offset[obj.name];
|
|
767
764
|
// Open Door
|
|
768
|
-
(0, _helper.animateDoor)(offsetData, obj, open_doors, element.toJS(), is_corner,
|
|
765
|
+
(0, _helper.animateDoor)(offsetData, obj, open_doors, element.toJS(), is_corner, 'Opened2D');
|
|
769
766
|
} else {
|
|
770
767
|
// Open Drawer
|
|
771
|
-
(0, _helper.translateDrawer)(element.toJS(), obj, open_doors,
|
|
768
|
+
(0, _helper.translateDrawer)(element.toJS(), obj, open_doors, 'Opened2D');
|
|
772
769
|
}
|
|
773
770
|
}
|
|
774
771
|
}
|
|
@@ -778,30 +775,30 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
778
775
|
// keys in structure
|
|
779
776
|
var keys = Object.keys(structure);
|
|
780
777
|
// if exist in cached Objects
|
|
781
|
-
if (element.type + color +
|
|
782
|
-
var _objGroup = cachedObject[element.type + color +
|
|
778
|
+
if (element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS()) + element.counterTop.uri in cachedObject) {
|
|
779
|
+
var _objGroup = cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())].clone();
|
|
783
780
|
return Promise.resolve(onLoadItem(_objGroup.clone()));
|
|
784
781
|
}
|
|
785
782
|
|
|
786
783
|
// base Object/////
|
|
787
784
|
var objGroup = null;
|
|
788
785
|
var _loadGLTFs = function loadGLTFs(i) {
|
|
789
|
-
if (keys[i] ===
|
|
786
|
+
if (keys[i] === 'animation') {
|
|
790
787
|
// if animation info
|
|
791
788
|
i++;
|
|
792
789
|
return _loadGLTFs(i);
|
|
793
790
|
}
|
|
794
|
-
if (keys[i] ===
|
|
791
|
+
if (keys[i] === 'placeholders') {
|
|
795
792
|
// if placeholders group
|
|
796
793
|
i++;
|
|
797
794
|
return _loadGLTFs(i);
|
|
798
795
|
}
|
|
799
796
|
if (i === keys.length) {
|
|
800
797
|
// if end of keys
|
|
801
|
-
cachedObject[element.type + color +
|
|
802
|
-
return onLoadItem(cachedObject[element.type + color +
|
|
798
|
+
cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = objGroup.clone(); //register to cachedObject
|
|
799
|
+
return onLoadItem(cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())].clone());
|
|
803
800
|
}
|
|
804
|
-
if (keys[i] ===
|
|
801
|
+
if (keys[i] === 'base') {
|
|
805
802
|
// if base Objects
|
|
806
803
|
i++;
|
|
807
804
|
return _loadGLTFs(i);
|
|
@@ -814,15 +811,15 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
814
811
|
}
|
|
815
812
|
for (var j = 0; j < placeholderStructure.length; j++) {
|
|
816
813
|
var phData = placeholderStructure[j];
|
|
817
|
-
var phs = phData.split(
|
|
818
|
-
var temp = phData.split(
|
|
814
|
+
var phs = phData.split('/');
|
|
815
|
+
var temp = phData.split('/');
|
|
819
816
|
// placeholder remake////////////////
|
|
820
817
|
for (var k = 0; k < phs.length; k++) {
|
|
821
818
|
if (phs[k] in placeholders) {
|
|
822
819
|
var placeholderphs = placeholders[phs[k]];
|
|
823
820
|
var key = placeholderStructure.length / placeholderphs.length;
|
|
824
821
|
phs[k] = placeholderphs[Math.floor(j / key)];
|
|
825
|
-
var splitedData = phs[k].split(
|
|
822
|
+
var splitedData = phs[k].split('/');
|
|
826
823
|
if (splitedData.length > 1) {
|
|
827
824
|
phs[k] = splitedData[splitedData.length - 1];
|
|
828
825
|
for (var m = splitedData.length - 2; m >= 0; m--) {
|
|
@@ -833,41 +830,41 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
833
830
|
k = -1;
|
|
834
831
|
continue;
|
|
835
832
|
}
|
|
836
|
-
if (phs[k].indexOf(
|
|
833
|
+
if (phs[k].indexOf('ph') == -1) {
|
|
837
834
|
var _url = structure[temp[k - 1]];
|
|
838
|
-
if (temp[k - 1] +
|
|
839
|
-
if (structure[temp[k - 1] +
|
|
840
|
-
_url = structure[temp[k - 1] +
|
|
835
|
+
if (temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS()) in structure) {
|
|
836
|
+
if (structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] != null) {
|
|
837
|
+
_url = structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())];
|
|
841
838
|
}
|
|
842
839
|
}
|
|
843
840
|
if ((0, _typeof2["default"])(_url) == Array) _url = _url[0];
|
|
844
|
-
var uData = _url.split(
|
|
841
|
+
var uData = _url.split('/');
|
|
845
842
|
uData = uData[uData.length - 1];
|
|
846
843
|
uData = uData.slice(0, -5);
|
|
847
|
-
var datas = uData.split(
|
|
844
|
+
var datas = uData.split('_');
|
|
848
845
|
uData = datas[1];
|
|
849
846
|
for (var _i = 2; _i < datas.length; _i++) {
|
|
850
|
-
uData +=
|
|
847
|
+
uData += '_';
|
|
851
848
|
uData += datas[_i];
|
|
852
849
|
}
|
|
853
|
-
uData = mainName.replace(
|
|
854
|
-
phs[k] =
|
|
850
|
+
uData = mainName.replace('main', uData);
|
|
851
|
+
phs[k] = 'ph_' + uData + '_' + phs[k];
|
|
855
852
|
}
|
|
856
853
|
}
|
|
857
854
|
phsArray.push(phs);
|
|
858
855
|
}
|
|
859
856
|
var url = structure[keys[i]];
|
|
860
|
-
var normalMap =
|
|
861
|
-
var urlData = url.split(
|
|
857
|
+
var normalMap = '';
|
|
858
|
+
var urlData = url.split('/');
|
|
862
859
|
for (var _j = 0; _j < element.submodule.size; _j++) {
|
|
863
|
-
var replaceUrlData = element.submodule.get(_j).split(
|
|
860
|
+
var replaceUrlData = element.submodule.get(_j).split('/');
|
|
864
861
|
if (urlData.includes(replaceUrlData[replaceUrlData.length - 2])) {
|
|
865
862
|
url = element.submodule.get(_j);
|
|
866
863
|
break;
|
|
867
864
|
}
|
|
868
865
|
}
|
|
869
866
|
for (var _j2 = 0; _j2 < element.normalMap.size; _j2++) {
|
|
870
|
-
var normalMapData = element.normalMap.get(_j2).split(
|
|
867
|
+
var normalMapData = element.normalMap.get(_j2).split('/');
|
|
871
868
|
if (urlData.includes(normalMapData[normalMapData.length - 2])) {
|
|
872
869
|
normalMap = element.normalMap.get(_j2);
|
|
873
870
|
break;
|
|
@@ -879,15 +876,15 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
879
876
|
if (phsArray.length > 0) {
|
|
880
877
|
// let loadUrl = dirName + url;
|
|
881
878
|
var loadUrl = url;
|
|
882
|
-
if (doorStyles.get(keys[i] +
|
|
883
|
-
loadUrl = doorStyles.get(keys[i] +
|
|
884
|
-
structure[keys[i] +
|
|
879
|
+
if (doorStyles.get(keys[i] + '_gltf') != undefined) {
|
|
880
|
+
loadUrl = doorStyles.get(keys[i] + '_gltf');
|
|
881
|
+
structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = loadUrl;
|
|
885
882
|
} else {
|
|
886
|
-
structure[keys[i] +
|
|
883
|
+
structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = null;
|
|
887
884
|
}
|
|
888
885
|
return (0, _loadObj.loadGLTF)(loadUrl).then(function (object) {
|
|
889
|
-
if (normalMap !==
|
|
890
|
-
var normalUrl = normalMap.split(
|
|
886
|
+
if (normalMap !== '') {
|
|
887
|
+
var normalUrl = normalMap.split('.')[0] + '-normal.' + normalMap.split('.')[1];
|
|
891
888
|
var t = loadTexture(normalMap);
|
|
892
889
|
var _m = loadTexture(normalUrl);
|
|
893
890
|
var mat2 = new Three.MeshStandardMaterial({
|
|
@@ -911,7 +908,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
911
908
|
// let normalMap = "catalog/items/doorstyle/" + doorStyles.get(keys[i]);
|
|
912
909
|
var _normalMap = doorStyles.get(keys[i]) || INITIAL_NORMAL_MAP;
|
|
913
910
|
var _mat;
|
|
914
|
-
if (_normalMap ===
|
|
911
|
+
if (_normalMap === '') {
|
|
915
912
|
var examplecolor = new Three.Color(parseInt(color.slice(1), 16)).convertLinearToSRGB();
|
|
916
913
|
_mat = new Three.MeshStandardMaterial({
|
|
917
914
|
color: examplecolor,
|
|
@@ -935,8 +932,8 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
935
932
|
object.children[_j4].material = _mat;
|
|
936
933
|
object.children[_j4].receiveShadow = true;
|
|
937
934
|
object.children[_j4].castShadow = true;
|
|
938
|
-
!object.children[_j4].name.includes(
|
|
939
|
-
} else if (!object.children[_j4].name.startsWith(
|
|
935
|
+
!object.children[_j4].name.includes('handle') && addEdgesToMesh(object.children[_j4]);
|
|
936
|
+
} else if (!object.children[_j4].name.startsWith('ph_') && object.children[_j4].type === _constants.OBJTYPE_GROUP) {
|
|
940
937
|
object.children[_j4].traverse(function (prim) {
|
|
941
938
|
prim.material = _mat;
|
|
942
939
|
prim.receiveShadow = true;
|
|
@@ -976,10 +973,10 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
976
973
|
} else {
|
|
977
974
|
if (parent.children[_k].name == placeholder) {
|
|
978
975
|
var tmp = object.clone();
|
|
979
|
-
if (placeholder.includes(
|
|
976
|
+
if (placeholder.includes('drawer_door') && placeholder.includes('_handle')) {
|
|
980
977
|
tmp.rotateZ(Math.PI / 2);
|
|
981
978
|
}
|
|
982
|
-
if (placeholder.includes(
|
|
979
|
+
if (placeholder.includes('_handle') && tmp.children[0].type === _constants.OBJTYPE_MESH) {
|
|
983
980
|
// NOTE: change metalness of handle
|
|
984
981
|
tmp.children[0].material.metalness = 1;
|
|
985
982
|
// handleMaterial.metalness || 0.2;
|
|
@@ -993,25 +990,23 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
993
990
|
}
|
|
994
991
|
}
|
|
995
992
|
}, function (reason) {
|
|
996
|
-
console.log(
|
|
993
|
+
console.log('loadGLTF failed for reason:', reason);
|
|
997
994
|
}).then(function () {
|
|
998
995
|
i++;
|
|
999
996
|
return _loadGLTFs(i);
|
|
1000
997
|
});
|
|
1001
998
|
}
|
|
1002
999
|
};
|
|
1003
|
-
return (0, _loadObj.loadGLTF)(structure[
|
|
1004
|
-
object.name =
|
|
1000
|
+
return (0, _loadObj.loadGLTF)(structure['base']).then(function (object) {
|
|
1001
|
+
object.name = 'MainObject';
|
|
1005
1002
|
object.receiveShadow = true;
|
|
1006
1003
|
objGroup = object;
|
|
1007
1004
|
if (!(0, _helper.isEmpty)(doorStyles)) {
|
|
1008
|
-
var normalMap = doorStyles.get(
|
|
1005
|
+
var normalMap = doorStyles.get('base') || INITIAL_NORMAL_MAP;
|
|
1009
1006
|
if (counterTop.uri === undefined) {
|
|
1010
1007
|
try {
|
|
1011
1008
|
counterTop = counterTop.toJS();
|
|
1012
1009
|
} catch (error) {
|
|
1013
|
-
//@todo THIS IS A TEMPORARY FIX FOR COUNTERTOP TEXTURE UNDEFINED ISSUE
|
|
1014
|
-
counterTop.uri = "https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg";
|
|
1015
1010
|
console.log(error);
|
|
1016
1011
|
}
|
|
1017
1012
|
}
|
|
@@ -1019,7 +1014,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
1019
1014
|
counterTop.uri = layer.toJS().counterTop.uri;
|
|
1020
1015
|
}
|
|
1021
1016
|
var countTopMap = counterTop.uri;
|
|
1022
|
-
var interiorMap = doorStyles.get(
|
|
1017
|
+
var interiorMap = doorStyles.get('interior');
|
|
1023
1018
|
var countT = loadTexture(countTopMap);
|
|
1024
1019
|
countT.wrapS = Three.RepeatWrapping;
|
|
1025
1020
|
countT.wrapT = Three.RepeatWrapping;
|
|
@@ -1028,7 +1023,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
1028
1023
|
var mat2 = null,
|
|
1029
1024
|
mat3 = null,
|
|
1030
1025
|
mat4 = null;
|
|
1031
|
-
if (normalMap ===
|
|
1026
|
+
if (normalMap === '') {
|
|
1032
1027
|
mat2 = new Three.MeshStandardMaterial({
|
|
1033
1028
|
color: examplecolor,
|
|
1034
1029
|
metalness: glossness === 1 ? params.metalness : params.metalness_glossy,
|
|
@@ -1045,11 +1040,11 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
1045
1040
|
}
|
|
1046
1041
|
// mat2.envMap = textureCube;
|
|
1047
1042
|
|
|
1048
|
-
if (normalMap !==
|
|
1043
|
+
if (normalMap !== '') {
|
|
1049
1044
|
var t = loadTexture(normalMap);
|
|
1050
1045
|
mat2.map = t;
|
|
1051
1046
|
}
|
|
1052
|
-
if (normalMap ===
|
|
1047
|
+
if (normalMap === '') {
|
|
1053
1048
|
mat3 = new Three.MeshStandardMaterial({
|
|
1054
1049
|
// color: examplecolor,
|
|
1055
1050
|
metalness: counterTop.metalness,
|
|
@@ -1071,13 +1066,13 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
1071
1066
|
});
|
|
1072
1067
|
mat4.map = loadTexture(interiorMap);
|
|
1073
1068
|
for (var j = 0; j < object.children.length; j++) {
|
|
1074
|
-
if (object.children[j].name.includes(
|
|
1075
|
-
if (object.children[j].name.includes(
|
|
1069
|
+
if (object.children[j].name.includes('main')) {}
|
|
1070
|
+
if (object.children[j].name.includes('countertop')) {
|
|
1076
1071
|
object.children[j].material = mat3;
|
|
1077
1072
|
object.children[j].receiveShadow = true;
|
|
1078
1073
|
object.children[j].castShadow = true;
|
|
1079
1074
|
addEdgesToMesh(object.children[j]);
|
|
1080
|
-
} else if (object.children[j].name.includes(
|
|
1075
|
+
} else if (object.children[j].name.includes('_interior_')) {
|
|
1081
1076
|
object.children[j].material = mat4;
|
|
1082
1077
|
} else if (object.children[j].type === _constants.OBJTYPE_MESH) {
|
|
1083
1078
|
object.children[j].material = mat2;
|
|
@@ -1087,7 +1082,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
1087
1082
|
}
|
|
1088
1083
|
}
|
|
1089
1084
|
}, function (reason) {
|
|
1090
|
-
console.log(
|
|
1085
|
+
console.log('loadGLTF failed for reason:', reason);
|
|
1091
1086
|
objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
|
|
1092
1087
|
}).then(function () {
|
|
1093
1088
|
return _loadGLTFs(0);
|
|
@@ -1101,18 +1096,18 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1101
1096
|
var applianceMaterial = element.applianceMaterial;
|
|
1102
1097
|
if (applianceMaterial.metalness == undefined) applianceMaterial = applianceMaterial.toJS();
|
|
1103
1098
|
var onLoadItem = function onLoadItem(object) {
|
|
1104
|
-
var newAltitude = element.properties.get(
|
|
1105
|
-
var newUnit = element.properties.get(
|
|
1099
|
+
var newAltitude = element.properties.get('altitude').get('_length');
|
|
1100
|
+
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
1106
1101
|
newAltitude = (0, _convertUnitsLite.convert)(newAltitude).from(newUnit).to(scene.unit);
|
|
1107
|
-
var newWidth = element.properties.get(
|
|
1108
|
-
var newWidthUnit = element.properties.get(
|
|
1109
|
-
newWidth = (0, _convertUnitsLite.convert)(newWidth).from(newWidthUnit).to(
|
|
1110
|
-
var newHeight = element.properties.get(
|
|
1111
|
-
var newHeightUnit = element.properties.get(
|
|
1112
|
-
newHeight = (0, _convertUnitsLite.convert)(newHeight).from(newHeightUnit).to(
|
|
1113
|
-
var newDepth = element.properties.get(
|
|
1114
|
-
var newDepthUnit = element.properties.get(
|
|
1115
|
-
newDepth = (0, _convertUnitsLite.convert)(newDepth).from(newDepthUnit).to(
|
|
1102
|
+
var newWidth = element.properties.get('width').get('_length');
|
|
1103
|
+
var newWidthUnit = element.properties.get('width').get('_unit') || 'in';
|
|
1104
|
+
newWidth = (0, _convertUnitsLite.convert)(newWidth).from(newWidthUnit).to('in');
|
|
1105
|
+
var newHeight = element.properties.get('height').get('_length');
|
|
1106
|
+
var newHeightUnit = element.properties.get('height').get('_unit') || 'in';
|
|
1107
|
+
newHeight = (0, _convertUnitsLite.convert)(newHeight).from(newHeightUnit).to('in');
|
|
1108
|
+
var newDepth = element.properties.get('depth').get('_length');
|
|
1109
|
+
var newDepthUnit = element.properties.get('depth').get('_unit') || 'in';
|
|
1110
|
+
newDepth = (0, _convertUnitsLite.convert)(newDepth).from(newDepthUnit).to('in');
|
|
1116
1111
|
object.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
|
|
1117
1112
|
// Normalize the origin of the object
|
|
1118
1113
|
var boundingBox = new Three.Box3().setFromObject(object);
|
|
@@ -1127,16 +1122,16 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1127
1122
|
var name = obj.name;
|
|
1128
1123
|
var texture,
|
|
1129
1124
|
textureLoader = new Three.TextureLoader();
|
|
1130
|
-
if (name.includes(
|
|
1125
|
+
if (name.includes('_black')) {
|
|
1131
1126
|
obj.material.roughness = 0.4;
|
|
1132
1127
|
obj.material.metalness = 1.0;
|
|
1133
1128
|
obj.material.color = new Three.Color(0, 0, 0);
|
|
1134
1129
|
obj.castShadow = true;
|
|
1135
1130
|
obj.receiveShadow = true;
|
|
1136
1131
|
return object;
|
|
1137
|
-
} else if (name.includes(
|
|
1138
|
-
texture = loadTexture(
|
|
1139
|
-
} else if (name.includes(
|
|
1132
|
+
} else if (name.includes('_wood')) {
|
|
1133
|
+
texture = loadTexture('/assets/img/texture/wood.jpg');
|
|
1134
|
+
} else if (name.includes('_glass')) {
|
|
1140
1135
|
// texture = loadTexture('/assets/img/texture/glass.jpg');
|
|
1141
1136
|
var material = new Three.MeshPhysicalMaterial({
|
|
1142
1137
|
transparent: true,
|
|
@@ -1151,7 +1146,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1151
1146
|
obj.castShadow = true;
|
|
1152
1147
|
obj.receiveShadow = true;
|
|
1153
1148
|
return object;
|
|
1154
|
-
} else if (name.includes(
|
|
1149
|
+
} else if (name.includes('_steel')) {
|
|
1155
1150
|
// texture = loadTexture('/assets/img/texture/steel.jpg');
|
|
1156
1151
|
var _material2 = new Three.MeshPhysicalMaterial({
|
|
1157
1152
|
roughness: 0.2,
|
|
@@ -1201,16 +1196,16 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1201
1196
|
// vertical line - 4 lines around object//////////////////////////
|
|
1202
1197
|
var vLineGeom = new Three.BufferGeometry();
|
|
1203
1198
|
var vertices = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z + 1.3];
|
|
1204
|
-
vLineGeom.setAttribute(
|
|
1199
|
+
vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
|
|
1205
1200
|
var vLineGeom1 = new Three.BufferGeometry();
|
|
1206
1201
|
var vertices1 = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z - 1.3];
|
|
1207
|
-
vLineGeom1.setAttribute(
|
|
1202
|
+
vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
|
|
1208
1203
|
var vLineGeom2 = new Three.BufferGeometry();
|
|
1209
1204
|
var vertices2 = [max.x, 0, max.z - (max.z - min.z) / 2, max.x + 1.3, 0, max.z - (max.z - min.z) / 2];
|
|
1210
|
-
vLineGeom1.setAttribute(
|
|
1205
|
+
vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
|
|
1211
1206
|
var vLineGeom3 = new Three.BufferGeometry();
|
|
1212
1207
|
var vertices3 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x - 1.3, 0, max.z - (max.z - min.z) / 2];
|
|
1213
|
-
vLineGeom1.setAttribute(
|
|
1208
|
+
vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
|
|
1214
1209
|
// ///////////////////////////////////////
|
|
1215
1210
|
|
|
1216
1211
|
// set names of transform object
|
|
@@ -1223,12 +1218,12 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1223
1218
|
color: 0xffffff,
|
|
1224
1219
|
colorWrite: true
|
|
1225
1220
|
}));
|
|
1226
|
-
rotFillObj.name =
|
|
1221
|
+
rotFillObj.name = 'rotate';
|
|
1227
1222
|
var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
|
|
1228
1223
|
color: 0xffffff,
|
|
1229
1224
|
side: Three.DoubleSide
|
|
1230
1225
|
}));
|
|
1231
|
-
upObj.name =
|
|
1226
|
+
upObj.name = 'transUp';
|
|
1232
1227
|
var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
|
|
1233
1228
|
color: new Three.Color(0xdd6699).convertLinearToSRGB(),
|
|
1234
1229
|
side: Three.DoubleSide,
|
|
@@ -1268,7 +1263,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1268
1263
|
vLine3.translateY(0.1);
|
|
1269
1264
|
upObj.translateOnAxis(uVec, 1);
|
|
1270
1265
|
upObj.translateY(max.y - min.y + 0.05);
|
|
1271
|
-
mBox.name =
|
|
1266
|
+
mBox.name = 'TransformBox';
|
|
1272
1267
|
mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
|
|
1273
1268
|
mBox.scale.set(1.01, 1.01, 1.01);
|
|
1274
1269
|
|
|
@@ -1296,7 +1291,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1296
1291
|
asrtObj.add(mBox);
|
|
1297
1292
|
asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);
|
|
1298
1293
|
// asrtObj.translateY(newAltitude / scalevec.y);
|
|
1299
|
-
asrtObj.name =
|
|
1294
|
+
asrtObj.name = 'TransformGizmo';
|
|
1300
1295
|
// add assets Objects Group
|
|
1301
1296
|
object.add(asrtObj);
|
|
1302
1297
|
|
|
@@ -1326,7 +1321,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1326
1321
|
cachedObject[element.type] = objGroup.clone(); //register to cachedObject
|
|
1327
1322
|
return onLoadItem(cachedObject[element.type].clone());
|
|
1328
1323
|
}
|
|
1329
|
-
if (keys[i] ===
|
|
1324
|
+
if (keys[i] === 'base') {
|
|
1330
1325
|
// if base Objects
|
|
1331
1326
|
i++;
|
|
1332
1327
|
return _loadGLTFs2(i);
|
|
@@ -1335,13 +1330,13 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1335
1330
|
|
|
1336
1331
|
// load base to start //
|
|
1337
1332
|
// return loadGLTF(dirName + structure["base"])
|
|
1338
|
-
return (0, _loadObj.loadGLTF)(structure[
|
|
1333
|
+
return (0, _loadObj.loadGLTF)(structure['base']).then(function (object) {
|
|
1339
1334
|
// let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
|
|
1340
1335
|
// let texture = loadTexture(textureURL);
|
|
1341
1336
|
// texture.wrapS = Three.MirroredRepeatWrapping;
|
|
1342
1337
|
// texture.wrapT = Three.MirroredRepeatWrapping;
|
|
1343
1338
|
|
|
1344
|
-
object.name =
|
|
1339
|
+
object.name = 'MainObject';
|
|
1345
1340
|
// NOTE: changed appliance emissive color to black
|
|
1346
1341
|
var mat2 = new Three.MeshStandardMaterial({
|
|
1347
1342
|
emissive: new Three.Color(0x0d0d0d).convertLinearToSRGB(),
|
|
@@ -1359,7 +1354,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1359
1354
|
}
|
|
1360
1355
|
objGroup = object;
|
|
1361
1356
|
}, function (reason) {
|
|
1362
|
-
console.log(
|
|
1357
|
+
console.log('loadGLTF failed for reason:', reason);
|
|
1363
1358
|
objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
|
|
1364
1359
|
}).then(function () {
|
|
1365
1360
|
return _loadGLTFs2(0);
|
|
@@ -1372,21 +1367,21 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1372
1367
|
var onLoadItem = function onLoadItem(object) {
|
|
1373
1368
|
var width = {
|
|
1374
1369
|
length: sizeinfo.width,
|
|
1375
|
-
unit:
|
|
1370
|
+
unit: 'in'
|
|
1376
1371
|
};
|
|
1377
1372
|
var depth = {
|
|
1378
1373
|
length: sizeinfo.depth,
|
|
1379
|
-
unit:
|
|
1374
|
+
unit: 'in'
|
|
1380
1375
|
};
|
|
1381
1376
|
var height = {
|
|
1382
1377
|
length: sizeinfo.height,
|
|
1383
|
-
unit:
|
|
1378
|
+
unit: 'in'
|
|
1384
1379
|
};
|
|
1385
|
-
var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to(
|
|
1386
|
-
var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to(
|
|
1387
|
-
var newHeight = (0, _convertUnitsLite.convert)(height.length).from(height.unit).to(
|
|
1388
|
-
var newAltitude = element.properties.get(
|
|
1389
|
-
var newUnit = element.properties.get(
|
|
1380
|
+
var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to('cm');
|
|
1381
|
+
var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to('cm');
|
|
1382
|
+
var newHeight = (0, _convertUnitsLite.convert)(height.length).from(height.unit).to('cm');
|
|
1383
|
+
var newAltitude = element.properties.get('altitude').get('_length');
|
|
1384
|
+
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
1390
1385
|
newAltitude = (0, _convertUnitsLite.convert)(newAltitude).from(newUnit).to(scene.unit);
|
|
1391
1386
|
|
|
1392
1387
|
//object.scale.set(newWidth, newHeight, newDepth);
|
|
@@ -1433,16 +1428,16 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1433
1428
|
// vertical line - 4 lines around object//////////////////////////
|
|
1434
1429
|
var vLineGeom = new Three.BufferGeometry();
|
|
1435
1430
|
var vertices = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z + 1.3];
|
|
1436
|
-
vLineGeom.setAttribute(
|
|
1431
|
+
vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
|
|
1437
1432
|
var vLineGeom1 = new Three.BufferGeometry();
|
|
1438
1433
|
var vertices1 = [(max.x - min.x) / 2 + min.x, 0, min.z, (max.x - min.x) / 2 + min.x, 0, min.z - 1.3];
|
|
1439
|
-
vLineGeom1.setAttribute(
|
|
1434
|
+
vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
|
|
1440
1435
|
var vLineGeom2 = new Three.BufferGeometry();
|
|
1441
1436
|
var vertices2 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x + 1.3, 0, max.z - (max.z - min.z) / 2];
|
|
1442
|
-
vLineGeom2.setAttribute(
|
|
1437
|
+
vLineGeom2.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
|
|
1443
1438
|
var vLineGeom3 = new Three.BufferGeometry();
|
|
1444
1439
|
var vertices3 = [min.x, 0, max.z - (max.z - min.z) / 2, min.x - 1.3, 0, max.z - (max.z - min.z) / 2];
|
|
1445
|
-
vLineGeom3.setAttribute(
|
|
1440
|
+
vLineGeom3.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
|
|
1446
1441
|
// ///////////////////////////////////////
|
|
1447
1442
|
|
|
1448
1443
|
// set names of transform object
|
|
@@ -1455,12 +1450,12 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1455
1450
|
color: 0xffffff,
|
|
1456
1451
|
colorWrite: true
|
|
1457
1452
|
}));
|
|
1458
|
-
rotFillObj.name =
|
|
1453
|
+
rotFillObj.name = 'rotate';
|
|
1459
1454
|
var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
|
|
1460
1455
|
color: 0xffffff,
|
|
1461
1456
|
side: Three.DoubleSide
|
|
1462
1457
|
}));
|
|
1463
|
-
upObj.name =
|
|
1458
|
+
upObj.name = 'transUp';
|
|
1464
1459
|
var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
|
|
1465
1460
|
color: 0xdd6699,
|
|
1466
1461
|
side: Three.DoubleSide,
|
|
@@ -1502,7 +1497,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1502
1497
|
//rotObj.translateOnAxis(uVec, 1);
|
|
1503
1498
|
upObj.translateOnAxis(uVec, 1);
|
|
1504
1499
|
upObj.translateY(max.y - min.y);
|
|
1505
|
-
mBox.name =
|
|
1500
|
+
mBox.name = 'TransformBox';
|
|
1506
1501
|
mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
|
|
1507
1502
|
mBox.scale.set(1.01, 1.01, 1.01);
|
|
1508
1503
|
|
|
@@ -1531,7 +1526,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1531
1526
|
asrtObj.add(mBox);
|
|
1532
1527
|
asrtObj.scale.set(1, 1, 1);
|
|
1533
1528
|
//asrtObj.translateY(newAltitude / scalevec.y);
|
|
1534
|
-
asrtObj.name =
|
|
1529
|
+
asrtObj.name = 'TransformGizmo';
|
|
1535
1530
|
// add assets Objects Group
|
|
1536
1531
|
object.add(asrtObj);
|
|
1537
1532
|
|
|
@@ -1564,7 +1559,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1564
1559
|
cachedObject[element.type] = objGroup.clone(); //register to cachedObject
|
|
1565
1560
|
return onLoadItem(cachedObject[element.type].clone());
|
|
1566
1561
|
}
|
|
1567
|
-
if (keys[i] ===
|
|
1562
|
+
if (keys[i] === 'base') {
|
|
1568
1563
|
// if base Objects
|
|
1569
1564
|
i++;
|
|
1570
1565
|
return _loadGLTFs3(i);
|
|
@@ -1573,13 +1568,13 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1573
1568
|
|
|
1574
1569
|
// load base to start //
|
|
1575
1570
|
// return loadGLTF(dirName + structure["base"])
|
|
1576
|
-
return (0, _loadObj.loadGLTF)(structure[
|
|
1571
|
+
return (0, _loadObj.loadGLTF)(structure['base']).then(function (object) {
|
|
1577
1572
|
// let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
|
|
1578
1573
|
// let texture = loadTexture(textureURL);
|
|
1579
1574
|
// texture.wrapS = Three.MirroredRepeatWrapping;
|
|
1580
1575
|
// texture.wrapT = Three.MirroredRepeatWrapping;
|
|
1581
1576
|
|
|
1582
|
-
object.name =
|
|
1577
|
+
object.name = 'MainObject';
|
|
1583
1578
|
var mat2 = new Three.MeshStandardMaterial({
|
|
1584
1579
|
emissive: new Three.Color(0x666666).convertLinearToSRGB(),
|
|
1585
1580
|
metalness: 0.7,
|
|
@@ -1595,7 +1590,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1595
1590
|
}
|
|
1596
1591
|
objGroup = object;
|
|
1597
1592
|
}, function (reason) {
|
|
1598
|
-
console.log(
|
|
1593
|
+
console.log('loadGLTF failed for reason:', reason);
|
|
1599
1594
|
objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
|
|
1600
1595
|
}).then(function () {
|
|
1601
1596
|
return _loadGLTFs3(0);
|