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