kitchen-simulator 4.1.0-react-18 → 4.1.1
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/README.md +3 -0
- package/es/AppContext.js +1 -1
- package/es/LiteKitchenConfigurator.js +162 -111
- package/es/LiteRenderer.js +161 -129
- package/es/actions/export.js +25 -12
- package/es/assets/gltf/door_sliding.bin +0 -0
- package/es/assets/img/svg/bottombar/elevation.svg +12 -5
- package/es/catalog/catalog.js +21 -5
- package/es/catalog/factories/area-factory-3d.js +17 -17
- package/es/catalog/factories/wall-factory.js +1 -1
- package/es/catalog/holes/window-clear/planner-element.js +2 -2
- package/es/catalog/properties/export.js +21 -0
- package/es/catalog/properties/property-checkbox.js +68 -0
- package/es/catalog/properties/property-color.js +39 -0
- package/es/catalog/properties/property-enum.js +50 -0
- package/es/catalog/properties/property-hidden.js +19 -0
- package/es/catalog/properties/property-lenght-measure.js +100 -0
- package/es/catalog/properties/property-length-measure.js +84 -0
- package/es/catalog/properties/property-length-measure_hole.js +100 -0
- package/es/catalog/properties/property-number.js +48 -0
- package/es/catalog/properties/property-read-only.js +26 -0
- package/es/catalog/properties/property-string.js +48 -0
- package/es/catalog/properties/property-toggle.js +39 -0
- package/es/catalog/properties/shared-property-style.js +14 -0
- package/es/catalog/utils/exporter.js +24 -11
- package/es/catalog/utils/item-loader.js +222 -213
- package/es/class/hole.js +0 -2
- package/es/class/item.js +89 -70
- package/es/class/layer.js +1 -1
- package/es/class/line.js +4 -8
- package/es/class/project.js +97 -80
- package/es/components/content.js +5 -93
- package/es/components/export.js +4 -6
- package/es/components/style/button.js +106 -0
- package/es/components/style/cancel-button.js +21 -0
- package/es/components/style/content-container.js +30 -0
- package/es/components/style/content-title.js +25 -0
- package/es/components/style/delete-button.js +24 -0
- package/es/components/style/export.js +28 -2
- package/es/components/style/form-block.js +20 -0
- package/es/components/style/form-color-input.js +26 -0
- package/es/components/style/form-label.js +22 -0
- package/es/components/style/form-number-input.js +29 -27
- package/es/components/style/form-number-input_2.js +200 -0
- package/es/components/style/form-select.js +19 -0
- package/es/components/style/form-slider.js +60 -0
- package/es/components/style/form-submit-button.js +25 -0
- package/es/components/style/form-text-input.js +69 -0
- package/es/components/viewer2d/grids/grid-streak.js +1 -1
- package/es/components/viewer2d/group.js +5 -4
- package/es/components/viewer2d/item.js +155 -359
- package/es/components/viewer2d/layer.js +1 -1
- package/es/components/viewer2d/line.js +22 -52
- package/es/components/viewer2d/ruler.js +16 -11
- package/es/components/viewer2d/rulerDist.js +38 -51
- package/es/components/viewer2d/rulerX.js +4 -2
- package/es/components/viewer2d/rulerY.js +3 -0
- package/es/components/viewer2d/scene.js +17 -12
- package/es/components/viewer2d/state.js +1 -1
- package/es/components/viewer2d/utils.js +2 -2
- package/es/components/viewer2d/vertex.js +3 -2
- package/es/components/viewer2d/viewer2d.js +56 -87
- package/es/components/viewer3d/ruler-utils/scene3D.js +1 -1
- package/es/components/viewer3d/scene-creator.js +255 -58
- package/es/components/viewer3d/viewer3d-first-person.js +24 -26
- package/es/components/viewer3d/viewer3d.js +103 -124
- package/es/constants.js +7 -2
- package/es/devLiteRenderer.js +491 -150
- package/es/index.js +590 -21
- package/es/models.js +13 -8
- package/es/plugins/SVGLoader.js +1414 -0
- package/es/plugins/console-debugger.js +34 -0
- package/es/plugins/export.js +7 -0
- package/es/plugins/keyboard.js +110 -0
- package/es/reducers/project-reducer.js +3 -0
- package/es/reducers/viewer2d-reducer.js +3 -1
- package/es/reducers/viewer3d-reducer.js +3 -1
- package/es/styles/export.js +5 -0
- package/es/styles/tabs.css +40 -0
- package/es/utils/geometry.js +77 -119
- package/es/utils/helper.js +38 -1
- package/es/utils/isolate-event-handler.js +827 -607
- package/es/utils/molding.js +459 -11
- package/es/utils/ruler.js +58 -0
- package/lib/AppContext.js +1 -1
- package/lib/LiteKitchenConfigurator.js +161 -111
- package/lib/LiteRenderer.js +160 -129
- package/lib/actions/export.js +35 -39
- package/lib/assets/gltf/door_sliding.bin +0 -0
- package/lib/assets/img/svg/bottombar/elevation.svg +12 -5
- package/lib/catalog/catalog.js +20 -4
- package/lib/catalog/factories/area-factory-3d.js +14 -14
- package/lib/catalog/factories/wall-factory.js +1 -1
- package/lib/catalog/holes/window-clear/planner-element.js +2 -2
- package/lib/catalog/properties/export.js +81 -0
- package/lib/catalog/properties/property-checkbox.js +76 -0
- package/lib/catalog/properties/property-color.js +47 -0
- package/lib/catalog/properties/property-enum.js +58 -0
- package/lib/catalog/properties/property-hidden.js +27 -0
- package/lib/catalog/properties/property-lenght-measure.js +108 -0
- package/lib/catalog/properties/property-length-measure.js +92 -0
- package/lib/catalog/properties/property-length-measure_hole.js +108 -0
- package/lib/catalog/properties/property-number.js +56 -0
- package/lib/catalog/properties/property-read-only.js +34 -0
- package/lib/catalog/properties/property-string.js +56 -0
- package/lib/catalog/properties/property-toggle.js +47 -0
- package/lib/catalog/properties/shared-property-style.js +21 -0
- package/lib/catalog/utils/exporter.js +24 -11
- package/lib/catalog/utils/item-loader.js +219 -210
- package/lib/class/hole.js +0 -2
- package/lib/class/item.js +87 -68
- package/lib/class/layer.js +1 -1
- package/lib/class/line.js +3 -7
- package/lib/class/project.js +97 -80
- package/lib/components/content.js +5 -93
- package/lib/components/export.js +6 -26
- package/lib/components/style/button.js +115 -0
- package/lib/components/style/cancel-button.js +29 -0
- package/lib/components/style/content-container.js +38 -0
- package/lib/components/style/content-title.js +35 -0
- package/lib/components/style/delete-button.js +34 -0
- package/lib/components/style/export.js +105 -1
- package/lib/components/style/form-block.js +28 -0
- package/lib/components/style/form-color-input.js +34 -0
- package/lib/components/style/form-label.js +30 -0
- package/lib/components/style/form-number-input.js +29 -27
- package/lib/components/style/form-number-input_2.js +209 -0
- package/lib/components/style/form-select.js +29 -0
- package/lib/components/style/form-slider.js +68 -0
- package/lib/components/style/form-submit-button.js +35 -0
- package/lib/components/style/form-text-input.js +78 -0
- package/lib/components/viewer2d/grids/grid-streak.js +1 -1
- package/lib/components/viewer2d/group.js +5 -4
- package/lib/components/viewer2d/item.js +152 -356
- package/lib/components/viewer2d/layer.js +1 -1
- package/lib/components/viewer2d/line.js +22 -52
- package/lib/components/viewer2d/ruler.js +15 -10
- package/lib/components/viewer2d/rulerDist.js +38 -51
- package/lib/components/viewer2d/rulerX.js +4 -2
- package/lib/components/viewer2d/rulerY.js +3 -0
- package/lib/components/viewer2d/scene.js +17 -12
- package/lib/components/viewer2d/state.js +1 -1
- package/lib/components/viewer2d/utils.js +2 -2
- package/lib/components/viewer2d/vertex.js +3 -2
- package/lib/components/viewer2d/viewer2d.js +54 -84
- package/lib/components/viewer3d/ruler-utils/scene3D.js +1 -1
- package/lib/components/viewer3d/scene-creator.js +252 -55
- package/lib/components/viewer3d/viewer3d-first-person.js +24 -26
- package/lib/components/viewer3d/viewer3d.js +100 -120
- package/lib/constants.js +12 -7
- package/lib/devLiteRenderer.js +489 -148
- package/lib/index.js +592 -21
- package/lib/models.js +13 -8
- package/lib/plugins/SVGLoader.js +1419 -0
- package/lib/plugins/console-debugger.js +42 -0
- package/lib/plugins/export.js +25 -0
- package/lib/plugins/keyboard.js +117 -0
- package/lib/reducers/project-reducer.js +3 -0
- package/lib/reducers/viewer2d-reducer.js +3 -1
- package/lib/reducers/viewer3d-reducer.js +3 -1
- package/lib/styles/export.js +13 -0
- package/lib/styles/tabs.css +40 -0
- package/lib/utils/geometry.js +77 -119
- package/lib/utils/helper.js +40 -1
- package/lib/utils/isolate-event-handler.js +827 -606
- package/lib/utils/molding.js +460 -9
- package/lib/utils/ruler.js +63 -0
- package/package.json +20 -15
- package/es/mocks/appliancePayload.json +0 -27
- package/es/mocks/cabinetPayload.json +0 -1914
- package/es/mocks/cabinetPayload2.json +0 -76
- package/es/mocks/dataBundle2.json +0 -4
- package/es/mocks/distancePayload.json +0 -6
- package/es/mocks/doorStylePayload2.json +0 -84
- package/es/mocks/furnishingPayload.json +0 -23
- package/es/mocks/itemCDSPayload.json +0 -27
- package/es/mocks/lightingPayload.json +0 -23
- package/es/mocks/mockProps.json +0 -43
- package/es/mocks/mockProps2.json +0 -9
- package/es/mocks/moldingPayload.json +0 -19
- package/es/mocks/projectItemsCatalog.json +0 -133
- package/es/mocks/rectangleShape.json +0 -238
- package/es/mocks/replaceCabinetPayload.json +0 -81
- package/es/mocks/roomShapePayload.json +0 -5
- package/es/useAppContext.js +0 -8
- package/lib/mocks/appliancePayload.json +0 -27
- package/lib/mocks/cabinetPayload.json +0 -1914
- package/lib/mocks/cabinetPayload2.json +0 -76
- package/lib/mocks/dataBundle2.json +0 -4
- package/lib/mocks/distancePayload.json +0 -6
- package/lib/mocks/doorStylePayload2.json +0 -84
- package/lib/mocks/furnishingPayload.json +0 -23
- package/lib/mocks/itemCDSPayload.json +0 -27
- package/lib/mocks/lightingPayload.json +0 -23
- package/lib/mocks/mockProps.json +0 -43
- package/lib/mocks/mockProps2.json +0 -9
- package/lib/mocks/moldingPayload.json +0 -19
- package/lib/mocks/projectItemsCatalog.json +0 -133
- package/lib/mocks/rectangleShape.json +0 -238
- package/lib/mocks/replaceCabinetPayload.json +0 -81
- package/lib/mocks/roomShapePayload.json +0 -5
- package/lib/useAppContext.js +0 -16
|
@@ -28,18 +28,18 @@ var _utils = require("../../components/viewer2d/utils");
|
|
|
28
28
|
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
29
|
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
30
|
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 =
|
|
31
|
+
var INITIAL_NORMAL_MAP = '';
|
|
32
32
|
|
|
33
33
|
// env Map ///////////////
|
|
34
34
|
var paramsCounter = {
|
|
35
|
-
envMap:
|
|
35
|
+
envMap: 'HDR',
|
|
36
36
|
roughness: 0.6,
|
|
37
37
|
metalness: 0.3,
|
|
38
38
|
exposure: 1
|
|
39
39
|
// debug: true
|
|
40
40
|
};
|
|
41
41
|
var params = {
|
|
42
|
-
envMap:
|
|
42
|
+
envMap: 'HDR',
|
|
43
43
|
roughness: 0.9,
|
|
44
44
|
metalness: 0.1,
|
|
45
45
|
metalness_glossy: 0.2,
|
|
@@ -47,18 +47,18 @@ var params = {
|
|
|
47
47
|
// debug: false
|
|
48
48
|
};
|
|
49
49
|
var paramsModel = {
|
|
50
|
-
envMap:
|
|
50
|
+
envMap: 'HDR',
|
|
51
51
|
roughness: 0.9,
|
|
52
52
|
metalness: 0.2,
|
|
53
53
|
exposure: 1.0
|
|
54
54
|
// debug: false
|
|
55
55
|
};
|
|
56
56
|
var buttons = [{
|
|
57
|
-
name:
|
|
58
|
-
thumbnail:
|
|
57
|
+
name: 'Edit',
|
|
58
|
+
thumbnail: '/assets/img/svg/3d_item_warning_edit.svg'
|
|
59
59
|
}, {
|
|
60
|
-
name:
|
|
61
|
-
thumbnail:
|
|
60
|
+
name: 'Info',
|
|
61
|
+
thumbnail: '/assets/img/svg/3d_item_warning_info.svg'
|
|
62
62
|
}];
|
|
63
63
|
|
|
64
64
|
// /////////////////////////
|
|
@@ -74,7 +74,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
74
74
|
var x = element.x,
|
|
75
75
|
y = element.y,
|
|
76
76
|
rotation = element.rotation;
|
|
77
|
-
var el_DSN =
|
|
77
|
+
var el_DSN = 'el_DSN',
|
|
78
78
|
doorStylesKeys = [];
|
|
79
79
|
var _element = element.toJS();
|
|
80
80
|
if (_element.doorStyle !== undefined) {
|
|
@@ -82,10 +82,10 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
82
82
|
doorStylesKeys = Object.keys(_element.doorStyle.doorStyles);
|
|
83
83
|
}
|
|
84
84
|
}
|
|
85
|
-
if ((doorStylesKeys.includes(
|
|
85
|
+
if ((doorStylesKeys.includes('euro_length') || doorStylesKeys.includes('euro_width') || doorStylesKeys.includes('euro_shape_svg')) && _element.doorStyle.doorStyles.is_euro_cds) {
|
|
86
86
|
el_DSN = _element.doorStyle.door_style_name;
|
|
87
87
|
} else {
|
|
88
|
-
el_DSN =
|
|
88
|
+
el_DSN = 'el_DSN';
|
|
89
89
|
}
|
|
90
90
|
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
91
|
if (doorStylesKeys.length > 0) {
|
|
@@ -94,42 +94,42 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
94
94
|
el_is_euro_cds = _element.doorStyle.doorStyles.is_euro_cds;
|
|
95
95
|
el_euro_shape_svg = _element.doorStyle.doorStyles.euro_shape_svg;
|
|
96
96
|
}
|
|
97
|
-
if (el_euro_length
|
|
98
|
-
el_DSN =
|
|
97
|
+
if ((0, _helper.isEmpty)(el_euro_length) && (0, _helper.isEmpty)(el_euro_width)) {
|
|
98
|
+
el_DSN = 'el_DSN';
|
|
99
99
|
}
|
|
100
|
-
if (el_DSN ===
|
|
100
|
+
if (el_DSN === 'Euro & Frameless') {
|
|
101
101
|
// sizeinfo["depth"] = el_euro_length;
|
|
102
102
|
// sizeinfo["width"] = el_euro_width;
|
|
103
103
|
}
|
|
104
|
-
var tempWidth = element.properties.get(
|
|
105
|
-
var tempDepth = element.properties.get(
|
|
104
|
+
var tempWidth = element.properties.get('width');
|
|
105
|
+
var tempDepth = element.properties.get('depth');
|
|
106
106
|
width = tempWidth && {
|
|
107
|
-
length: tempWidth.get(
|
|
108
|
-
unit: tempWidth.get(
|
|
107
|
+
length: tempWidth.get('_length'),
|
|
108
|
+
unit: tempWidth.get('_unit')
|
|
109
109
|
};
|
|
110
110
|
depth = tempDepth && {
|
|
111
|
-
length: tempDepth.get(
|
|
112
|
-
unit: tempDepth.get(
|
|
111
|
+
length: tempDepth.get('_length'),
|
|
112
|
+
unit: tempDepth.get('_unit')
|
|
113
113
|
};
|
|
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(
|
|
114
|
+
var originalWidth = (0, _convertUnitsLite.convert)(sizeinfo.width).from('in').to('cm');
|
|
115
|
+
var originalDepth = (0, _convertUnitsLite.convert)(sizeinfo.depth).from('in').to('cm');
|
|
116
|
+
var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to('cm');
|
|
117
|
+
var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to('cm');
|
|
118
118
|
var padding = (0, _convertUnitsLite.convert)(_constants.SHAPE_SVG_PADDING).from(_constants.UNIT_INCH).to(_constants.UNIT_CENTIMETER);
|
|
119
119
|
var angle = element.rotation + 90;
|
|
120
120
|
var textRotation = 0;
|
|
121
121
|
if (Math.sin(angle * Math.PI / 180) < 0) {
|
|
122
122
|
textRotation = 180;
|
|
123
123
|
}
|
|
124
|
-
var color =
|
|
124
|
+
var color = '#eee';
|
|
125
125
|
if (layoutpos == _constants.BASE_CABINET_LAYOUTPOS) {
|
|
126
|
-
color =
|
|
126
|
+
color = '#3f8db3';
|
|
127
127
|
}
|
|
128
128
|
if (layoutpos == _constants.TALL_CABINET_LAYOUTPOS) {
|
|
129
|
-
color =
|
|
129
|
+
color = '#93b3be';
|
|
130
130
|
}
|
|
131
131
|
if (layoutpos == _constants.WALL_CABINET_LAYOUTPOS) {
|
|
132
|
-
color =
|
|
132
|
+
color = '#48b08dcc';
|
|
133
133
|
}
|
|
134
134
|
var splitStr = [];
|
|
135
135
|
var txtContent = [];
|
|
@@ -143,7 +143,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
143
143
|
var dcId,
|
|
144
144
|
doorStyle = element.doorStyle;
|
|
145
145
|
if (doorStyle instanceof _immutable.Map) {
|
|
146
|
-
dcId = doorStyle.get(
|
|
146
|
+
dcId = doorStyle.get('id');
|
|
147
147
|
} else {
|
|
148
148
|
dcId = doorStyle.id;
|
|
149
149
|
}
|
|
@@ -162,7 +162,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
162
162
|
splitStr.push(type.slice(lineCount * rowCount));
|
|
163
163
|
splitStr.forEach(function (el, key) {
|
|
164
164
|
txtContent.push(/*#__PURE__*/_react["default"].createElement("text", {
|
|
165
|
-
key:
|
|
165
|
+
key: 'text' + key,
|
|
166
166
|
x: "0",
|
|
167
167
|
y: newDepth / 2 - 12,
|
|
168
168
|
dy: 16 * key,
|
|
@@ -172,16 +172,16 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
172
172
|
,
|
|
173
173
|
style: {
|
|
174
174
|
fontWeight: 500,
|
|
175
|
-
fontSize:
|
|
176
|
-
textAnchor:
|
|
177
|
-
fill:
|
|
178
|
-
display:
|
|
175
|
+
fontSize: '7px',
|
|
176
|
+
textAnchor: 'middle',
|
|
177
|
+
fill: '#FFF',
|
|
178
|
+
display: 'block'
|
|
179
179
|
}
|
|
180
180
|
}, el));
|
|
181
181
|
});
|
|
182
182
|
var style = {
|
|
183
|
-
stroke: element.selected ?
|
|
184
|
-
strokeWidth:
|
|
183
|
+
stroke: element.selected ? '#565658' : '#565658',
|
|
184
|
+
strokeWidth: '2px',
|
|
185
185
|
fill: color
|
|
186
186
|
};
|
|
187
187
|
// let arrow_style = { stroke: element.selected ? '#0096fd' : null, strokeWidth: "2px", fill: "#84e1ce" };
|
|
@@ -189,8 +189,8 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
189
189
|
var rendered = null;
|
|
190
190
|
var svg_url, svg_width, svg_depth;
|
|
191
191
|
if (shape_svg || el_euro_shape_svg) {
|
|
192
|
-
if (typeof shape_svg ==
|
|
193
|
-
if (el_DSN ===
|
|
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,20 +217,25 @@ 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
|
-
var
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
224
|
+
var target = event.currentTarget;
|
|
225
|
+
var tooltip = document.getElementById('warning_box_2d');
|
|
226
|
+
var parent = document.querySelector('#kitchen-simulator-container');
|
|
227
|
+
if (!tooltip || !parent) return;
|
|
228
|
+
var targetRect = target.getBoundingClientRect();
|
|
229
|
+
var parentRect = parent.getBoundingClientRect();
|
|
230
|
+
var left = targetRect.left - parentRect.left;
|
|
231
|
+
var top = targetRect.top - parentRect.top;
|
|
232
|
+
tooltip.style.display = 'flex';
|
|
233
|
+
tooltip.style.left = "".concat(left, "px");
|
|
234
|
+
tooltip.style.top = "".concat(top - 60, "px");
|
|
230
235
|
},
|
|
231
236
|
onMouseLeave: function onMouseLeave() {
|
|
232
|
-
if (document.getElementById(
|
|
233
|
-
document.getElementById(
|
|
237
|
+
if (document.getElementById('warning_box_2d')) {
|
|
238
|
+
document.getElementById('warning_box_2d').style.display = 'none';
|
|
234
239
|
}
|
|
235
240
|
}
|
|
236
241
|
}, /*#__PURE__*/_react["default"].createElement("circle", {
|
|
@@ -249,7 +254,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
249
254
|
href: buttons[1].thumbnail
|
|
250
255
|
})), /*#__PURE__*/_react["default"].createElement("g", {
|
|
251
256
|
style: {
|
|
252
|
-
cursor:
|
|
257
|
+
cursor: 'pointer',
|
|
253
258
|
transform: "translate(".concat(transX, "px, ").concat(transY, "px)")
|
|
254
259
|
},
|
|
255
260
|
"data-element-root": true,
|
|
@@ -295,7 +300,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
295
300
|
}, /*#__PURE__*/_react["default"].createElement("image", {
|
|
296
301
|
preserveAspectRatio: "none",
|
|
297
302
|
style: {
|
|
298
|
-
pointerEvents:
|
|
303
|
+
pointerEvents: 'none'
|
|
299
304
|
},
|
|
300
305
|
href: svg_url,
|
|
301
306
|
width: "".concat(newWidth + 2 * padding_width),
|
|
@@ -308,16 +313,16 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
308
313
|
y: "".concat(padding_depth),
|
|
309
314
|
width: "".concat(newWidth),
|
|
310
315
|
height: "".concat(newDepth),
|
|
311
|
-
visibility:
|
|
316
|
+
visibility: 'hidden',
|
|
312
317
|
style: {
|
|
313
|
-
pointerEvents:
|
|
318
|
+
pointerEvents: 'all',
|
|
314
319
|
opacity: 0.7,
|
|
315
|
-
postion:
|
|
320
|
+
postion: 'relative'
|
|
316
321
|
}
|
|
317
322
|
}), /*#__PURE__*/_react["default"].createElement("g", {
|
|
318
323
|
transform: "translate(".concat(padding_width, ",").concat(padding_depth, ")")
|
|
319
|
-
}, txtContent)), element.category ===
|
|
320
|
-
visibility: (0, _utils.isWarningItem)(element) ?
|
|
324
|
+
}, txtContent)), element.category === 'cabinet' && /*#__PURE__*/_react["default"].createElement("g", {
|
|
325
|
+
visibility: (0, _utils.isWarningItem)(element) ? 'visible' : 'hidden'
|
|
321
326
|
}, warning_buttons)));
|
|
322
327
|
} else {
|
|
323
328
|
rendered = /*#__PURE__*/_react["default"].createElement("g", {
|
|
@@ -404,38 +409,38 @@ var assignUVs = function assignUVs(geometry) {
|
|
|
404
409
|
function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner) {
|
|
405
410
|
var mode = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
406
411
|
if (element.doorStyle.constructor !== _immutable.Map) {
|
|
407
|
-
element = element.set(
|
|
412
|
+
element = element.set('doorStyle', (0, _immutable.fromJS)(element.doorStyle));
|
|
408
413
|
}
|
|
409
|
-
if (element.doorStyle.toJS().handle_gltf !==
|
|
414
|
+
if (element.doorStyle.toJS().handle_gltf !== '') {
|
|
410
415
|
// Check element has doorHandle
|
|
411
416
|
for (var i = 1; i < 10; i++) {
|
|
412
|
-
element = element.setIn([
|
|
413
|
-
element = element.setIn([
|
|
414
|
-
element = element.setIn([
|
|
417
|
+
element = element.setIn(['doorStyle', 'doorStyles', 'door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
|
|
418
|
+
element = element.setIn(['doorStyle', 'doorStyles', 'fixed_drawer_door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
|
|
419
|
+
element = element.setIn(['doorStyle', 'doorStyles', 'drawer_door_handle_' + i + '_gltf'], element.doorStyle.toJS().handle_gltf);
|
|
415
420
|
}
|
|
416
421
|
}
|
|
417
422
|
var width = {
|
|
418
423
|
length: sizeinfo.width,
|
|
419
|
-
unit:
|
|
424
|
+
unit: 'in'
|
|
420
425
|
};
|
|
421
426
|
var depth = {
|
|
422
427
|
length: sizeinfo.depth,
|
|
423
|
-
unit:
|
|
428
|
+
unit: 'in'
|
|
424
429
|
};
|
|
425
430
|
var height = {
|
|
426
431
|
length: sizeinfo.height,
|
|
427
|
-
unit:
|
|
432
|
+
unit: 'in'
|
|
428
433
|
};
|
|
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(
|
|
434
|
+
var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to('in');
|
|
435
|
+
var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to('in');
|
|
436
|
+
var newHeight = (0, _convertUnitsLite.convert)(height.length).from(height.unit).to('in');
|
|
437
|
+
var mainName = ''; // to get name structure//
|
|
438
|
+
if (element.properties.get('width')) newWidth = element.getIn(['properties', 'width', '_length']);
|
|
439
|
+
if (element.properties.get('depth')) newDepth = element.getIn(['properties', 'depth', '_length']);
|
|
440
|
+
if (element.properties.get('height')) newHeight = element.getIn(['properties', 'height', '_length']);
|
|
436
441
|
var structure = structure_json;
|
|
437
442
|
// structure.push({name:'model', url: '/assets/model/DCM.gltf'});
|
|
438
|
-
structure.model =
|
|
443
|
+
structure.model = '/assets/model/DCM.gltf';
|
|
439
444
|
var placeholders = structure.placeholders;
|
|
440
445
|
var doorStyles = null;
|
|
441
446
|
var color = 0xffffff,
|
|
@@ -445,26 +450,29 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
445
450
|
if (layer.toJS().counterTop.uri) {
|
|
446
451
|
counterTop.uri = layer.toJS().counterTop.uri;
|
|
447
452
|
}
|
|
448
|
-
if (
|
|
453
|
+
if ('name' in element.doorStyle) {
|
|
454
|
+
var _element2, _element3, _element4, _element5;
|
|
449
455
|
doorStyles = new _immutable.Map(element.doorStyle.doorStyles);
|
|
450
|
-
color = element.doorStyle.color;
|
|
451
|
-
glossness = element.doorStyle.glossness;
|
|
452
|
-
handleMaterial.metalness = element.doorStyle.metalness;
|
|
453
|
-
handleMaterial.roughness = element.doorStyle.roughness;
|
|
456
|
+
color = (_element2 = element) === null || _element2 === void 0 || (_element2 = _element2.doorStyle) === null || _element2 === void 0 ? void 0 : _element2.color;
|
|
457
|
+
glossness = (_element3 = element) === null || _element3 === void 0 || (_element3 = _element3.doorStyle) === null || _element3 === void 0 ? void 0 : _element3.glossness;
|
|
458
|
+
handleMaterial.metalness = (_element4 = element) === null || _element4 === void 0 || (_element4 = _element4.doorStyle) === null || _element4 === void 0 ? void 0 : _element4.metalness;
|
|
459
|
+
handleMaterial.roughness = (_element5 = element) === null || _element5 === void 0 || (_element5 = _element5.doorStyle) === null || _element5 === void 0 ? void 0 : _element5.roughness;
|
|
454
460
|
} else if (element.doorStyle != null && element.doorStyle) {
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
handleMaterial.
|
|
461
|
+
var _element6, _element7, _element8, _element9, _element0;
|
|
462
|
+
doorStyles = (_element6 = element) === null || _element6 === void 0 || (_element6 = _element6.doorStyle) === null || _element6 === void 0 ? void 0 : _element6.get('doorStyles');
|
|
463
|
+
color = (_element7 = element) === null || _element7 === void 0 || (_element7 = _element7.doorStyle) === null || _element7 === void 0 ? void 0 : _element7.get('color');
|
|
464
|
+
glossness = (_element8 = element) === null || _element8 === void 0 || (_element8 = _element8.doorStyle) === null || _element8 === void 0 ? void 0 : _element8.get('glossness');
|
|
465
|
+
handleMaterial.metalness = (_element9 = element) === null || _element9 === void 0 || (_element9 = _element9.doorStyle) === null || _element9 === void 0 ? void 0 : _element9.get('metalness');
|
|
466
|
+
handleMaterial.roughness = (_element0 = element) === null || _element0 === void 0 || (_element0 = _element0.doorStyle) === null || _element0 === void 0 ? void 0 : _element0.get('roughness');
|
|
460
467
|
}
|
|
461
|
-
if (
|
|
462
|
-
if (
|
|
468
|
+
if ((0, _helper.isEmpty)(color)) color = '#ffffff';
|
|
469
|
+
if ((0, _helper.isEmpty)(glossness)) glossness = 1;
|
|
463
470
|
var tempDoorStyles = doorStyles.toJS();
|
|
464
471
|
var tempPlaceholders = structure.tempPlaceholders;
|
|
465
472
|
var tPlaceholders = tempPlaceholders.find(function (el) {
|
|
466
|
-
|
|
467
|
-
|
|
473
|
+
var _tempDoorStyles$cds, _tempDoorStyles$cds$;
|
|
474
|
+
if (tempDoorStyles !== null && tempDoorStyles !== void 0 && tempDoorStyles.cabinet_door_style_id) return el.id === (tempDoorStyles === null || tempDoorStyles === void 0 ? void 0 : tempDoorStyles.cabinet_door_style_id);else if ((tempDoorStyles === null || tempDoorStyles === void 0 || (_tempDoorStyles$cds = tempDoorStyles.cds) === null || _tempDoorStyles$cds === void 0 ? void 0 : _tempDoorStyles$cds.length) > 0) return el.id === (tempDoorStyles === null || tempDoorStyles === void 0 || (_tempDoorStyles$cds$ = tempDoorStyles.cds[0]) === null || _tempDoorStyles$cds$ === void 0 ? void 0 : _tempDoorStyles$cds$.cabinet_door_style_id);
|
|
475
|
+
return false;
|
|
468
476
|
});
|
|
469
477
|
if (tPlaceholders !== undefined) {
|
|
470
478
|
placeholders = tPlaceholders.placeholders;
|
|
@@ -483,13 +491,13 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
483
491
|
areaMaterial.side = Three.DoubleSide;
|
|
484
492
|
// areaMaterial.envMap = textureCube;
|
|
485
493
|
if ((0, _helper.isEmpty)(doorStyles)) {
|
|
486
|
-
var normalMap = doorStyles.get(
|
|
494
|
+
var normalMap = doorStyles.get('base') || INITIAL_NORMAL_MAP;
|
|
487
495
|
var interiortexture = loadTexture(normalMap);
|
|
488
496
|
applyTexture(areaMaterial, interiortexture, 100, 100);
|
|
489
497
|
}
|
|
490
498
|
var object1 = object;
|
|
491
|
-
var newAltitude = element.properties.get(
|
|
492
|
-
var newUnit = element.properties.get(
|
|
499
|
+
var newAltitude = element.properties.get('altitude').get('_length');
|
|
500
|
+
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
493
501
|
newAltitude = (0, _convertUnitsLite.convert)(newAltitude).from(newUnit).to(scene.unit);
|
|
494
502
|
var _element = element.toJS();
|
|
495
503
|
if (!_element.doorStyle.doorStyles.is_euro_cds) {
|
|
@@ -506,27 +514,27 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
506
514
|
var door_match = child.name.match(matchStr);
|
|
507
515
|
if (door_match && door_match.length > 2) {
|
|
508
516
|
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 ?
|
|
517
|
+
var rotate_match_text = element.properties.toJS().flip_doorhandle ? 'rotate_L' : 'rotate_R';
|
|
518
|
+
if (door_match[2] === '_L') {
|
|
519
|
+
rotate_match_text = element.properties.toJS().flip_doorhandle ? 'rotate_R' : 'rotate_L';
|
|
512
520
|
}
|
|
513
521
|
var isDoubleDoor = door_match && door_match[2] !== undefined;
|
|
514
522
|
(_child$children$ = child.children[0]) === null || _child$children$ === void 0 || _child$children$.children.forEach(function (it) {
|
|
515
523
|
var _it$name, _it$children;
|
|
516
|
-
if (it !== null && it !== void 0 && (_it$name = it.name) !== null && _it$name !== void 0 && _it$name.includes(
|
|
524
|
+
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
525
|
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(
|
|
526
|
+
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
527
|
var tmp = (object1 === null || object1 === void 0 || (_object1$children = object1.children) === null || _object1$children === void 0 ? void 0 : _object1$children.filter(function (item) {
|
|
520
528
|
return (item === null || item === void 0 ? void 0 : item.name) === tname;
|
|
521
529
|
})) || [];
|
|
522
530
|
var t0 = tmp[0];
|
|
523
|
-
var filterStr = t0 !== null && t0 !== void 0 && (_t0$name = t0.name) !== null && _t0$name !== void 0 && _t0$name.endsWith(
|
|
531
|
+
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
532
|
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
533
|
var _item$name;
|
|
526
534
|
return item === null || item === void 0 || (_item$name = item.name) === null || _item$name === void 0 ? void 0 : _item$name.endsWith(filterStr);
|
|
527
535
|
})) || [];
|
|
528
536
|
var tpos0 = tposArr[0];
|
|
529
|
-
if (it.name.includes(
|
|
537
|
+
if (it.name.includes('base_end')) {
|
|
530
538
|
var _it$position$x, _it$position, _it$position$y, _it$position2, _tpos0$position$x, _tpos0$position;
|
|
531
539
|
door_animate_offset[child.name] = {
|
|
532
540
|
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 +602,16 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
594
602
|
// vertical line - 4 lines around object//////////////////////////
|
|
595
603
|
var vLineGeom = new Three.BufferGeometry();
|
|
596
604
|
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(
|
|
605
|
+
vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
|
|
598
606
|
var vLineGeom1 = new Three.BufferGeometry();
|
|
599
607
|
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(
|
|
608
|
+
vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
|
|
601
609
|
var vLineGeom2 = new Three.BufferGeometry();
|
|
602
610
|
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(
|
|
611
|
+
vLineGeom2.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
|
|
604
612
|
var vLineGeom3 = new Three.BufferGeometry();
|
|
605
613
|
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(
|
|
614
|
+
vLineGeom3.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
|
|
607
615
|
// ///////////////////////////////////////
|
|
608
616
|
|
|
609
617
|
// set names of transform object
|
|
@@ -616,12 +624,12 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
616
624
|
color: new Three.Color(0xffffff).convertLinearToSRGB(),
|
|
617
625
|
colorWrite: true
|
|
618
626
|
}));
|
|
619
|
-
rotFillObj.name =
|
|
627
|
+
rotFillObj.name = 'rotate';
|
|
620
628
|
var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
|
|
621
629
|
color: new Three.Color(0xffffff).convertLinearToSRGB(),
|
|
622
630
|
side: Three.DoubleSide
|
|
623
631
|
}));
|
|
624
|
-
upObj.name =
|
|
632
|
+
upObj.name = 'transUp';
|
|
625
633
|
var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
|
|
626
634
|
color: new Three.Color(0xdd6699).convertLinearToSRGB(),
|
|
627
635
|
side: Three.DoubleSide,
|
|
@@ -655,15 +663,15 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
655
663
|
vLine3.material.depthTest = false;
|
|
656
664
|
// translate vector to center of object
|
|
657
665
|
var uVec = new Three.Vector3(-posVec.x / scalevec.x, -posVec.y / scalevec.y, -posVec.z / scalevec.z);
|
|
658
|
-
vLine.translateY(0.1);
|
|
659
|
-
vLine1.translateY(0.1);
|
|
660
|
-
vLine2.translateY(0.1);
|
|
661
|
-
vLine3.translateY(0.1);
|
|
666
|
+
vLine.translateY(_boundingBox.min.y + 0.1);
|
|
667
|
+
vLine1.translateY(_boundingBox.min.y + 0.1);
|
|
668
|
+
vLine2.translateY(_boundingBox.min.y + 0.1);
|
|
669
|
+
vLine3.translateY(_boundingBox.min.y + 0.1);
|
|
662
670
|
|
|
663
671
|
//rotObj.translateOnAxis(uVec, 1);
|
|
664
672
|
upObj.translateOnAxis(uVec, 1);
|
|
665
673
|
upObj.translateY(max.y - min.y);
|
|
666
|
-
mBox.name =
|
|
674
|
+
mBox.name = 'TransformBox';
|
|
667
675
|
mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
|
|
668
676
|
mBox.scale.set(1.01, 1.01, 1.01);
|
|
669
677
|
|
|
@@ -692,7 +700,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
692
700
|
asrtObj.add(mBox);
|
|
693
701
|
asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);
|
|
694
702
|
//asrtObj.translateY(newAltitude / scalevec.y);
|
|
695
|
-
asrtObj.name =
|
|
703
|
+
asrtObj.name = 'TransformGizmo';
|
|
696
704
|
// add assets Objects Group
|
|
697
705
|
object1.add(asrtObj);
|
|
698
706
|
|
|
@@ -705,7 +713,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
705
713
|
SceneCreator.getDistances(layer);
|
|
706
714
|
}, 100);
|
|
707
715
|
}
|
|
708
|
-
var flip_doorhandle = element.properties.get(
|
|
716
|
+
var flip_doorhandle = element.properties.get('flip_doorhandle');
|
|
709
717
|
if (flip_doorhandle) {
|
|
710
718
|
SceneCreator.updateDoorHandleMesh(element, object1, true);
|
|
711
719
|
}
|
|
@@ -721,14 +729,14 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
721
729
|
transparency: 0.8
|
|
722
730
|
});
|
|
723
731
|
obj.material = material;
|
|
724
|
-
} else if (name.startsWith(
|
|
732
|
+
} else if (name.startsWith('sink_')) {
|
|
725
733
|
// texture = loadTexture('/assets/img/texture/steel.jpg');
|
|
726
734
|
|
|
727
735
|
var _material;
|
|
728
736
|
// Get color from name
|
|
729
|
-
if (name.includes(
|
|
737
|
+
if (name.includes('black') || name.includes('white')) {
|
|
730
738
|
var _color2;
|
|
731
|
-
if (name.includes(
|
|
739
|
+
if (name.includes('black')) {
|
|
732
740
|
_color2 = new Three.Color(0x555555).convertLinearToSRGB();
|
|
733
741
|
} else {
|
|
734
742
|
_color2 = 0xffffff;
|
|
@@ -761,14 +769,14 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
761
769
|
var open_doors = element.toJS().properties.open_doors;
|
|
762
770
|
var object_match = obj.name.match(/\d_(interior_drawer[^LR1-9]*)(_[LR1-9])?$/) || obj.name.match(matchStr);
|
|
763
771
|
if (object_match && object_match.length > 2) {
|
|
764
|
-
var isDoor = object_match[1] ===
|
|
772
|
+
var isDoor = object_match[1] === 'door';
|
|
765
773
|
if (isDoor) {
|
|
766
774
|
var offsetData = object1.userData.door_animate_offset[obj.name];
|
|
767
775
|
// Open Door
|
|
768
|
-
(0, _helper.animateDoor)(offsetData, obj, open_doors, element.toJS(), is_corner,
|
|
776
|
+
(0, _helper.animateDoor)(offsetData, obj, open_doors, element.toJS(), is_corner, 'Opened2D');
|
|
769
777
|
} else {
|
|
770
778
|
// Open Drawer
|
|
771
|
-
(0, _helper.translateDrawer)(element.toJS(), obj, open_doors,
|
|
779
|
+
(0, _helper.translateDrawer)(element.toJS(), obj, open_doors, 'Opened2D');
|
|
772
780
|
}
|
|
773
781
|
}
|
|
774
782
|
}
|
|
@@ -778,30 +786,30 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
778
786
|
// keys in structure
|
|
779
787
|
var keys = Object.keys(structure);
|
|
780
788
|
// if exist in cached Objects
|
|
781
|
-
if (element.type + color +
|
|
782
|
-
var _objGroup = cachedObject[element.type + color +
|
|
789
|
+
if (element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS()) + element.counterTop.uri in cachedObject) {
|
|
790
|
+
var _objGroup = cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())].clone();
|
|
783
791
|
return Promise.resolve(onLoadItem(_objGroup.clone()));
|
|
784
792
|
}
|
|
785
793
|
|
|
786
794
|
// base Object/////
|
|
787
795
|
var objGroup = null;
|
|
788
796
|
var _loadGLTFs = function loadGLTFs(i) {
|
|
789
|
-
if (keys[i] ===
|
|
797
|
+
if (keys[i] === 'animation') {
|
|
790
798
|
// if animation info
|
|
791
799
|
i++;
|
|
792
800
|
return _loadGLTFs(i);
|
|
793
801
|
}
|
|
794
|
-
if (keys[i] ===
|
|
802
|
+
if (keys[i] === 'placeholders') {
|
|
795
803
|
// if placeholders group
|
|
796
804
|
i++;
|
|
797
805
|
return _loadGLTFs(i);
|
|
798
806
|
}
|
|
799
807
|
if (i === keys.length) {
|
|
800
808
|
// if end of keys
|
|
801
|
-
cachedObject[element.type + color +
|
|
802
|
-
return onLoadItem(cachedObject[element.type + color +
|
|
809
|
+
cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = objGroup.clone(); //register to cachedObject
|
|
810
|
+
return onLoadItem(cachedObject[element.type + color + 'doorStyle' + JSON.stringify(doorStyles.toJS())].clone());
|
|
803
811
|
}
|
|
804
|
-
if (keys[i] ===
|
|
812
|
+
if (keys[i] === 'base') {
|
|
805
813
|
// if base Objects
|
|
806
814
|
i++;
|
|
807
815
|
return _loadGLTFs(i);
|
|
@@ -814,15 +822,15 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
814
822
|
}
|
|
815
823
|
for (var j = 0; j < placeholderStructure.length; j++) {
|
|
816
824
|
var phData = placeholderStructure[j];
|
|
817
|
-
var phs = phData.split(
|
|
818
|
-
var temp = phData.split(
|
|
825
|
+
var phs = phData.split('/');
|
|
826
|
+
var temp = phData.split('/');
|
|
819
827
|
// placeholder remake////////////////
|
|
820
828
|
for (var k = 0; k < phs.length; k++) {
|
|
821
829
|
if (phs[k] in placeholders) {
|
|
822
830
|
var placeholderphs = placeholders[phs[k]];
|
|
823
831
|
var key = placeholderStructure.length / placeholderphs.length;
|
|
824
832
|
phs[k] = placeholderphs[Math.floor(j / key)];
|
|
825
|
-
var splitedData = phs[k].split(
|
|
833
|
+
var splitedData = phs[k].split('/');
|
|
826
834
|
if (splitedData.length > 1) {
|
|
827
835
|
phs[k] = splitedData[splitedData.length - 1];
|
|
828
836
|
for (var m = splitedData.length - 2; m >= 0; m--) {
|
|
@@ -833,41 +841,41 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
833
841
|
k = -1;
|
|
834
842
|
continue;
|
|
835
843
|
}
|
|
836
|
-
if (phs[k].indexOf(
|
|
844
|
+
if (phs[k].indexOf('ph') == -1) {
|
|
837
845
|
var _url = structure[temp[k - 1]];
|
|
838
|
-
if (temp[k - 1] +
|
|
839
|
-
if (structure[temp[k - 1] +
|
|
840
|
-
_url = structure[temp[k - 1] +
|
|
846
|
+
if (temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS()) in structure) {
|
|
847
|
+
if (structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] != null) {
|
|
848
|
+
_url = structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())];
|
|
841
849
|
}
|
|
842
850
|
}
|
|
843
851
|
if ((0, _typeof2["default"])(_url) == Array) _url = _url[0];
|
|
844
|
-
var uData = _url.split(
|
|
852
|
+
var uData = _url.split('/');
|
|
845
853
|
uData = uData[uData.length - 1];
|
|
846
854
|
uData = uData.slice(0, -5);
|
|
847
|
-
var datas = uData.split(
|
|
855
|
+
var datas = uData.split('_');
|
|
848
856
|
uData = datas[1];
|
|
849
857
|
for (var _i = 2; _i < datas.length; _i++) {
|
|
850
|
-
uData +=
|
|
858
|
+
uData += '_';
|
|
851
859
|
uData += datas[_i];
|
|
852
860
|
}
|
|
853
|
-
uData = mainName.replace(
|
|
854
|
-
phs[k] =
|
|
861
|
+
uData = mainName.replace('main', uData);
|
|
862
|
+
phs[k] = 'ph_' + uData + '_' + phs[k];
|
|
855
863
|
}
|
|
856
864
|
}
|
|
857
865
|
phsArray.push(phs);
|
|
858
866
|
}
|
|
859
867
|
var url = structure[keys[i]];
|
|
860
|
-
var normalMap =
|
|
861
|
-
var urlData = url.split(
|
|
868
|
+
var normalMap = '';
|
|
869
|
+
var urlData = url.split('/');
|
|
862
870
|
for (var _j = 0; _j < element.submodule.size; _j++) {
|
|
863
|
-
var replaceUrlData = element.submodule.get(_j).split(
|
|
871
|
+
var replaceUrlData = element.submodule.get(_j).split('/');
|
|
864
872
|
if (urlData.includes(replaceUrlData[replaceUrlData.length - 2])) {
|
|
865
873
|
url = element.submodule.get(_j);
|
|
866
874
|
break;
|
|
867
875
|
}
|
|
868
876
|
}
|
|
869
877
|
for (var _j2 = 0; _j2 < element.normalMap.size; _j2++) {
|
|
870
|
-
var normalMapData = element.normalMap.get(_j2).split(
|
|
878
|
+
var normalMapData = element.normalMap.get(_j2).split('/');
|
|
871
879
|
if (urlData.includes(normalMapData[normalMapData.length - 2])) {
|
|
872
880
|
normalMap = element.normalMap.get(_j2);
|
|
873
881
|
break;
|
|
@@ -879,15 +887,15 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
879
887
|
if (phsArray.length > 0) {
|
|
880
888
|
// let loadUrl = dirName + url;
|
|
881
889
|
var loadUrl = url;
|
|
882
|
-
if (doorStyles.get(keys[i] +
|
|
883
|
-
loadUrl = doorStyles.get(keys[i] +
|
|
884
|
-
structure[keys[i] +
|
|
890
|
+
if (doorStyles.get(keys[i] + '_gltf') != undefined) {
|
|
891
|
+
loadUrl = doorStyles.get(keys[i] + '_gltf');
|
|
892
|
+
structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = loadUrl;
|
|
885
893
|
} else {
|
|
886
|
-
structure[keys[i] +
|
|
894
|
+
structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = null;
|
|
887
895
|
}
|
|
888
896
|
return (0, _loadObj.loadGLTF)(loadUrl).then(function (object) {
|
|
889
|
-
if (normalMap !==
|
|
890
|
-
var normalUrl = normalMap.split(
|
|
897
|
+
if (normalMap !== '') {
|
|
898
|
+
var normalUrl = normalMap.split('.')[0] + '-normal.' + normalMap.split('.')[1];
|
|
891
899
|
var t = loadTexture(normalMap);
|
|
892
900
|
var _m = loadTexture(normalUrl);
|
|
893
901
|
var mat2 = new Three.MeshStandardMaterial({
|
|
@@ -911,7 +919,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
911
919
|
// let normalMap = "catalog/items/doorstyle/" + doorStyles.get(keys[i]);
|
|
912
920
|
var _normalMap = doorStyles.get(keys[i]) || INITIAL_NORMAL_MAP;
|
|
913
921
|
var _mat;
|
|
914
|
-
if (_normalMap ===
|
|
922
|
+
if (_normalMap === '') {
|
|
915
923
|
var examplecolor = new Three.Color(parseInt(color.slice(1), 16)).convertLinearToSRGB();
|
|
916
924
|
_mat = new Three.MeshStandardMaterial({
|
|
917
925
|
color: examplecolor,
|
|
@@ -935,8 +943,8 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
935
943
|
object.children[_j4].material = _mat;
|
|
936
944
|
object.children[_j4].receiveShadow = true;
|
|
937
945
|
object.children[_j4].castShadow = true;
|
|
938
|
-
!object.children[_j4].name.includes(
|
|
939
|
-
} else if (!object.children[_j4].name.startsWith(
|
|
946
|
+
!object.children[_j4].name.includes('handle') && addEdgesToMesh(object.children[_j4]);
|
|
947
|
+
} else if (!object.children[_j4].name.startsWith('ph_') && object.children[_j4].type === _constants.OBJTYPE_GROUP) {
|
|
940
948
|
object.children[_j4].traverse(function (prim) {
|
|
941
949
|
prim.material = _mat;
|
|
942
950
|
prim.receiveShadow = true;
|
|
@@ -976,10 +984,10 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
976
984
|
} else {
|
|
977
985
|
if (parent.children[_k].name == placeholder) {
|
|
978
986
|
var tmp = object.clone();
|
|
979
|
-
if (placeholder.includes(
|
|
987
|
+
if (placeholder.includes('drawer_door') && placeholder.includes('_handle')) {
|
|
980
988
|
tmp.rotateZ(Math.PI / 2);
|
|
981
989
|
}
|
|
982
|
-
if (placeholder.includes(
|
|
990
|
+
if (placeholder.includes('_handle') && tmp.children[0].type === _constants.OBJTYPE_MESH) {
|
|
983
991
|
// NOTE: change metalness of handle
|
|
984
992
|
tmp.children[0].material.metalness = 1;
|
|
985
993
|
// handleMaterial.metalness || 0.2;
|
|
@@ -993,33 +1001,34 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
993
1001
|
}
|
|
994
1002
|
}
|
|
995
1003
|
}, function (reason) {
|
|
996
|
-
console.log(
|
|
1004
|
+
console.log('loadGLTF failed for reason:', reason);
|
|
997
1005
|
}).then(function () {
|
|
998
1006
|
i++;
|
|
999
1007
|
return _loadGLTFs(i);
|
|
1000
1008
|
});
|
|
1001
1009
|
}
|
|
1002
1010
|
};
|
|
1003
|
-
return (0, _loadObj.loadGLTF)(structure[
|
|
1004
|
-
object.name =
|
|
1011
|
+
return (0, _loadObj.loadGLTF)(structure['base']).then(function (object) {
|
|
1012
|
+
object.name = 'MainObject';
|
|
1005
1013
|
object.receiveShadow = true;
|
|
1006
1014
|
objGroup = object;
|
|
1007
1015
|
if (!(0, _helper.isEmpty)(doorStyles)) {
|
|
1008
|
-
var
|
|
1009
|
-
|
|
1016
|
+
var _layer$toJS;
|
|
1017
|
+
var normalMap = doorStyles.get('base') || INITIAL_NORMAL_MAP;
|
|
1018
|
+
if ((0, _helper.isEmpty)(counterTop.uri)) {
|
|
1010
1019
|
try {
|
|
1011
1020
|
counterTop = counterTop.toJS();
|
|
1012
1021
|
} catch (error) {
|
|
1013
1022
|
//@todo THIS IS A TEMPORARY FIX FOR COUNTERTOP TEXTURE UNDEFINED ISSUE
|
|
1014
|
-
counterTop.uri =
|
|
1023
|
+
counterTop.uri = 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg';
|
|
1015
1024
|
console.log(error);
|
|
1016
1025
|
}
|
|
1017
1026
|
}
|
|
1018
|
-
if (counterTop.uri ===
|
|
1027
|
+
if ((0, _helper.isEmpty)(counterTop.uri) && !(0, _helper.isEmpty)(layer === null || layer === void 0 || (_layer$toJS = layer.toJS()) === null || _layer$toJS === void 0 ? void 0 : _layer$toJS.counterTop.uri)) {
|
|
1019
1028
|
counterTop.uri = layer.toJS().counterTop.uri;
|
|
1020
1029
|
}
|
|
1021
1030
|
var countTopMap = counterTop.uri;
|
|
1022
|
-
var interiorMap = doorStyles.get(
|
|
1031
|
+
var interiorMap = doorStyles.get('interior');
|
|
1023
1032
|
var countT = loadTexture(countTopMap);
|
|
1024
1033
|
countT.wrapS = Three.RepeatWrapping;
|
|
1025
1034
|
countT.wrapT = Three.RepeatWrapping;
|
|
@@ -1028,7 +1037,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
1028
1037
|
var mat2 = null,
|
|
1029
1038
|
mat3 = null,
|
|
1030
1039
|
mat4 = null;
|
|
1031
|
-
if (normalMap ===
|
|
1040
|
+
if (normalMap === '') {
|
|
1032
1041
|
mat2 = new Three.MeshStandardMaterial({
|
|
1033
1042
|
color: examplecolor,
|
|
1034
1043
|
metalness: glossness === 1 ? params.metalness : params.metalness_glossy,
|
|
@@ -1045,11 +1054,11 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
1045
1054
|
}
|
|
1046
1055
|
// mat2.envMap = textureCube;
|
|
1047
1056
|
|
|
1048
|
-
if (normalMap !==
|
|
1057
|
+
if (normalMap !== '') {
|
|
1049
1058
|
var t = loadTexture(normalMap);
|
|
1050
1059
|
mat2.map = t;
|
|
1051
1060
|
}
|
|
1052
|
-
if (normalMap ===
|
|
1061
|
+
if (normalMap === '') {
|
|
1053
1062
|
mat3 = new Three.MeshStandardMaterial({
|
|
1054
1063
|
// color: examplecolor,
|
|
1055
1064
|
metalness: counterTop.metalness,
|
|
@@ -1071,13 +1080,13 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
1071
1080
|
});
|
|
1072
1081
|
mat4.map = loadTexture(interiorMap);
|
|
1073
1082
|
for (var j = 0; j < object.children.length; j++) {
|
|
1074
|
-
if (object.children[j].name.includes(
|
|
1075
|
-
if (object.children[j].name.includes(
|
|
1083
|
+
if (object.children[j].name.includes('main')) {}
|
|
1084
|
+
if (object.children[j].name.includes('countertop')) {
|
|
1076
1085
|
object.children[j].material = mat3;
|
|
1077
1086
|
object.children[j].receiveShadow = true;
|
|
1078
1087
|
object.children[j].castShadow = true;
|
|
1079
1088
|
addEdgesToMesh(object.children[j]);
|
|
1080
|
-
} else if (object.children[j].name.includes(
|
|
1089
|
+
} else if (object.children[j].name.includes('_interior_')) {
|
|
1081
1090
|
object.children[j].material = mat4;
|
|
1082
1091
|
} else if (object.children[j].type === _constants.OBJTYPE_MESH) {
|
|
1083
1092
|
object.children[j].material = mat2;
|
|
@@ -1087,7 +1096,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
1087
1096
|
}
|
|
1088
1097
|
}
|
|
1089
1098
|
}, function (reason) {
|
|
1090
|
-
console.log(
|
|
1099
|
+
console.log('loadGLTF failed for reason:', reason);
|
|
1091
1100
|
objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
|
|
1092
1101
|
}).then(function () {
|
|
1093
1102
|
return _loadGLTFs(0);
|
|
@@ -1101,18 +1110,18 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1101
1110
|
var applianceMaterial = element.applianceMaterial;
|
|
1102
1111
|
if (applianceMaterial.metalness == undefined) applianceMaterial = applianceMaterial.toJS();
|
|
1103
1112
|
var onLoadItem = function onLoadItem(object) {
|
|
1104
|
-
var newAltitude = element.properties.get(
|
|
1105
|
-
var newUnit = element.properties.get(
|
|
1113
|
+
var newAltitude = element.properties.get('altitude').get('_length');
|
|
1114
|
+
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
1106
1115
|
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(
|
|
1116
|
+
var newWidth = element.properties.get('width').get('_length');
|
|
1117
|
+
var newWidthUnit = element.properties.get('width').get('_unit') || 'in';
|
|
1118
|
+
newWidth = (0, _convertUnitsLite.convert)(newWidth).from(newWidthUnit).to('in');
|
|
1119
|
+
var newHeight = element.properties.get('height').get('_length');
|
|
1120
|
+
var newHeightUnit = element.properties.get('height').get('_unit') || 'in';
|
|
1121
|
+
newHeight = (0, _convertUnitsLite.convert)(newHeight).from(newHeightUnit).to('in');
|
|
1122
|
+
var newDepth = element.properties.get('depth').get('_length');
|
|
1123
|
+
var newDepthUnit = element.properties.get('depth').get('_unit') || 'in';
|
|
1124
|
+
newDepth = (0, _convertUnitsLite.convert)(newDepth).from(newDepthUnit).to('in');
|
|
1116
1125
|
object.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
|
|
1117
1126
|
// Normalize the origin of the object
|
|
1118
1127
|
var boundingBox = new Three.Box3().setFromObject(object);
|
|
@@ -1127,16 +1136,16 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1127
1136
|
var name = obj.name;
|
|
1128
1137
|
var texture,
|
|
1129
1138
|
textureLoader = new Three.TextureLoader();
|
|
1130
|
-
if (name.includes(
|
|
1139
|
+
if (name.includes('_black')) {
|
|
1131
1140
|
obj.material.roughness = 0.4;
|
|
1132
1141
|
obj.material.metalness = 1.0;
|
|
1133
1142
|
obj.material.color = new Three.Color(0, 0, 0);
|
|
1134
1143
|
obj.castShadow = true;
|
|
1135
1144
|
obj.receiveShadow = true;
|
|
1136
1145
|
return object;
|
|
1137
|
-
} else if (name.includes(
|
|
1138
|
-
texture = loadTexture(
|
|
1139
|
-
} else if (name.includes(
|
|
1146
|
+
} else if (name.includes('_wood')) {
|
|
1147
|
+
texture = loadTexture('/assets/img/texture/wood.jpg');
|
|
1148
|
+
} else if (name.includes('_glass')) {
|
|
1140
1149
|
// texture = loadTexture('/assets/img/texture/glass.jpg');
|
|
1141
1150
|
var material = new Three.MeshPhysicalMaterial({
|
|
1142
1151
|
transparent: true,
|
|
@@ -1151,7 +1160,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1151
1160
|
obj.castShadow = true;
|
|
1152
1161
|
obj.receiveShadow = true;
|
|
1153
1162
|
return object;
|
|
1154
|
-
} else if (name.includes(
|
|
1163
|
+
} else if (name.includes('_steel')) {
|
|
1155
1164
|
// texture = loadTexture('/assets/img/texture/steel.jpg');
|
|
1156
1165
|
var _material2 = new Three.MeshPhysicalMaterial({
|
|
1157
1166
|
roughness: 0.2,
|
|
@@ -1201,16 +1210,16 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1201
1210
|
// vertical line - 4 lines around object//////////////////////////
|
|
1202
1211
|
var vLineGeom = new Three.BufferGeometry();
|
|
1203
1212
|
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(
|
|
1213
|
+
vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
|
|
1205
1214
|
var vLineGeom1 = new Three.BufferGeometry();
|
|
1206
1215
|
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(
|
|
1216
|
+
vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
|
|
1208
1217
|
var vLineGeom2 = new Three.BufferGeometry();
|
|
1209
1218
|
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(
|
|
1219
|
+
vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
|
|
1211
1220
|
var vLineGeom3 = new Three.BufferGeometry();
|
|
1212
1221
|
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(
|
|
1222
|
+
vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
|
|
1214
1223
|
// ///////////////////////////////////////
|
|
1215
1224
|
|
|
1216
1225
|
// set names of transform object
|
|
@@ -1223,12 +1232,12 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1223
1232
|
color: 0xffffff,
|
|
1224
1233
|
colorWrite: true
|
|
1225
1234
|
}));
|
|
1226
|
-
rotFillObj.name =
|
|
1235
|
+
rotFillObj.name = 'rotate';
|
|
1227
1236
|
var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
|
|
1228
1237
|
color: 0xffffff,
|
|
1229
1238
|
side: Three.DoubleSide
|
|
1230
1239
|
}));
|
|
1231
|
-
upObj.name =
|
|
1240
|
+
upObj.name = 'transUp';
|
|
1232
1241
|
var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
|
|
1233
1242
|
color: new Three.Color(0xdd6699).convertLinearToSRGB(),
|
|
1234
1243
|
side: Three.DoubleSide,
|
|
@@ -1268,7 +1277,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1268
1277
|
vLine3.translateY(0.1);
|
|
1269
1278
|
upObj.translateOnAxis(uVec, 1);
|
|
1270
1279
|
upObj.translateY(max.y - min.y + 0.05);
|
|
1271
|
-
mBox.name =
|
|
1280
|
+
mBox.name = 'TransformBox';
|
|
1272
1281
|
mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
|
|
1273
1282
|
mBox.scale.set(1.01, 1.01, 1.01);
|
|
1274
1283
|
|
|
@@ -1296,7 +1305,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1296
1305
|
asrtObj.add(mBox);
|
|
1297
1306
|
asrtObj.scale.set(1 / object.scale.x, object.scale.y, 1 / object.scale.z);
|
|
1298
1307
|
// asrtObj.translateY(newAltitude / scalevec.y);
|
|
1299
|
-
asrtObj.name =
|
|
1308
|
+
asrtObj.name = 'TransformGizmo';
|
|
1300
1309
|
// add assets Objects Group
|
|
1301
1310
|
object.add(asrtObj);
|
|
1302
1311
|
|
|
@@ -1326,7 +1335,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1326
1335
|
cachedObject[element.type] = objGroup.clone(); //register to cachedObject
|
|
1327
1336
|
return onLoadItem(cachedObject[element.type].clone());
|
|
1328
1337
|
}
|
|
1329
|
-
if (keys[i] ===
|
|
1338
|
+
if (keys[i] === 'base') {
|
|
1330
1339
|
// if base Objects
|
|
1331
1340
|
i++;
|
|
1332
1341
|
return _loadGLTFs2(i);
|
|
@@ -1335,13 +1344,13 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1335
1344
|
|
|
1336
1345
|
// load base to start //
|
|
1337
1346
|
// return loadGLTF(dirName + structure["base"])
|
|
1338
|
-
return (0, _loadObj.loadGLTF)(structure[
|
|
1347
|
+
return (0, _loadObj.loadGLTF)(structure['base']).then(function (object) {
|
|
1339
1348
|
// let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
|
|
1340
1349
|
// let texture = loadTexture(textureURL);
|
|
1341
1350
|
// texture.wrapS = Three.MirroredRepeatWrapping;
|
|
1342
1351
|
// texture.wrapT = Three.MirroredRepeatWrapping;
|
|
1343
1352
|
|
|
1344
|
-
object.name =
|
|
1353
|
+
object.name = 'MainObject';
|
|
1345
1354
|
// NOTE: changed appliance emissive color to black
|
|
1346
1355
|
var mat2 = new Three.MeshStandardMaterial({
|
|
1347
1356
|
emissive: new Three.Color(0x0d0d0d).convertLinearToSRGB(),
|
|
@@ -1359,7 +1368,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1359
1368
|
}
|
|
1360
1369
|
objGroup = object;
|
|
1361
1370
|
}, function (reason) {
|
|
1362
|
-
console.log(
|
|
1371
|
+
console.log('loadGLTF failed for reason:', reason);
|
|
1363
1372
|
objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
|
|
1364
1373
|
}).then(function () {
|
|
1365
1374
|
return _loadGLTFs2(0);
|
|
@@ -1372,21 +1381,21 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1372
1381
|
var onLoadItem = function onLoadItem(object) {
|
|
1373
1382
|
var width = {
|
|
1374
1383
|
length: sizeinfo.width,
|
|
1375
|
-
unit:
|
|
1384
|
+
unit: 'in'
|
|
1376
1385
|
};
|
|
1377
1386
|
var depth = {
|
|
1378
1387
|
length: sizeinfo.depth,
|
|
1379
|
-
unit:
|
|
1388
|
+
unit: 'in'
|
|
1380
1389
|
};
|
|
1381
1390
|
var height = {
|
|
1382
1391
|
length: sizeinfo.height,
|
|
1383
|
-
unit:
|
|
1392
|
+
unit: 'in'
|
|
1384
1393
|
};
|
|
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(
|
|
1394
|
+
var newWidth = (0, _convertUnitsLite.convert)(width.length).from(width.unit).to('cm');
|
|
1395
|
+
var newDepth = (0, _convertUnitsLite.convert)(depth.length).from(depth.unit).to('cm');
|
|
1396
|
+
var newHeight = (0, _convertUnitsLite.convert)(height.length).from(height.unit).to('cm');
|
|
1397
|
+
var newAltitude = element.properties.get('altitude').get('_length');
|
|
1398
|
+
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
1390
1399
|
newAltitude = (0, _convertUnitsLite.convert)(newAltitude).from(newUnit).to(scene.unit);
|
|
1391
1400
|
|
|
1392
1401
|
//object.scale.set(newWidth, newHeight, newDepth);
|
|
@@ -1433,16 +1442,16 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1433
1442
|
// vertical line - 4 lines around object//////////////////////////
|
|
1434
1443
|
var vLineGeom = new Three.BufferGeometry();
|
|
1435
1444
|
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(
|
|
1445
|
+
vLineGeom.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices), 3));
|
|
1437
1446
|
var vLineGeom1 = new Three.BufferGeometry();
|
|
1438
1447
|
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(
|
|
1448
|
+
vLineGeom1.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices1), 3));
|
|
1440
1449
|
var vLineGeom2 = new Three.BufferGeometry();
|
|
1441
1450
|
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(
|
|
1451
|
+
vLineGeom2.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices2), 3));
|
|
1443
1452
|
var vLineGeom3 = new Three.BufferGeometry();
|
|
1444
1453
|
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(
|
|
1454
|
+
vLineGeom3.setAttribute('position', new Three.BufferAttribute(new Float32Array(vertices3), 3));
|
|
1446
1455
|
// ///////////////////////////////////////
|
|
1447
1456
|
|
|
1448
1457
|
// set names of transform object
|
|
@@ -1455,12 +1464,12 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1455
1464
|
color: 0xffffff,
|
|
1456
1465
|
colorWrite: true
|
|
1457
1466
|
}));
|
|
1458
|
-
rotFillObj.name =
|
|
1467
|
+
rotFillObj.name = 'rotate';
|
|
1459
1468
|
var upObj = new Three.Mesh(upwardsGeom, new Three.MeshBasicMaterial({
|
|
1460
1469
|
color: 0xffffff,
|
|
1461
1470
|
side: Three.DoubleSide
|
|
1462
1471
|
}));
|
|
1463
|
-
upObj.name =
|
|
1472
|
+
upObj.name = 'transUp';
|
|
1464
1473
|
var mBox = new Three.Mesh(moveBox, new Three.MeshBasicMaterial({
|
|
1465
1474
|
color: 0xdd6699,
|
|
1466
1475
|
side: Three.DoubleSide,
|
|
@@ -1502,7 +1511,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1502
1511
|
//rotObj.translateOnAxis(uVec, 1);
|
|
1503
1512
|
upObj.translateOnAxis(uVec, 1);
|
|
1504
1513
|
upObj.translateY(max.y - min.y);
|
|
1505
|
-
mBox.name =
|
|
1514
|
+
mBox.name = 'TransformBox';
|
|
1506
1515
|
mBox.translateOnAxis(new Three.Vector3(uVec.x, uVec.y + (max.y - min.y) / 2, uVec.z), 1);
|
|
1507
1516
|
mBox.scale.set(1.01, 1.01, 1.01);
|
|
1508
1517
|
|
|
@@ -1531,7 +1540,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1531
1540
|
asrtObj.add(mBox);
|
|
1532
1541
|
asrtObj.scale.set(1, 1, 1);
|
|
1533
1542
|
//asrtObj.translateY(newAltitude / scalevec.y);
|
|
1534
|
-
asrtObj.name =
|
|
1543
|
+
asrtObj.name = 'TransformGizmo';
|
|
1535
1544
|
// add assets Objects Group
|
|
1536
1545
|
object.add(asrtObj);
|
|
1537
1546
|
|
|
@@ -1564,7 +1573,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1564
1573
|
cachedObject[element.type] = objGroup.clone(); //register to cachedObject
|
|
1565
1574
|
return onLoadItem(cachedObject[element.type].clone());
|
|
1566
1575
|
}
|
|
1567
|
-
if (keys[i] ===
|
|
1576
|
+
if (keys[i] === 'base') {
|
|
1568
1577
|
// if base Objects
|
|
1569
1578
|
i++;
|
|
1570
1579
|
return _loadGLTFs3(i);
|
|
@@ -1573,13 +1582,13 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1573
1582
|
|
|
1574
1583
|
// load base to start //
|
|
1575
1584
|
// return loadGLTF(dirName + structure["base"])
|
|
1576
|
-
return (0, _loadObj.loadGLTF)(structure[
|
|
1585
|
+
return (0, _loadObj.loadGLTF)(structure['base']).then(function (object) {
|
|
1577
1586
|
// let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
|
|
1578
1587
|
// let texture = loadTexture(textureURL);
|
|
1579
1588
|
// texture.wrapS = Three.MirroredRepeatWrapping;
|
|
1580
1589
|
// texture.wrapT = Three.MirroredRepeatWrapping;
|
|
1581
1590
|
|
|
1582
|
-
object.name =
|
|
1591
|
+
object.name = 'MainObject';
|
|
1583
1592
|
var mat2 = new Three.MeshStandardMaterial({
|
|
1584
1593
|
emissive: new Three.Color(0x666666).convertLinearToSRGB(),
|
|
1585
1594
|
metalness: 0.7,
|
|
@@ -1595,7 +1604,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1595
1604
|
}
|
|
1596
1605
|
objGroup = object;
|
|
1597
1606
|
}, function (reason) {
|
|
1598
|
-
console.log(
|
|
1607
|
+
console.log('loadGLTF failed for reason:', reason);
|
|
1599
1608
|
objGroup = GeomUtils.emptyBoxHolder(newWidth, newHeight, newDepth);
|
|
1600
1609
|
}).then(function () {
|
|
1601
1610
|
return _loadGLTFs3(0);
|