kitchen-simulator 1.1.1-test.72 → 1.1.1-test.74
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/@history.js +2 -5
- package/es/AppContext.js +3 -6
- package/es/KitchenConfigurator.js +86 -86
- package/es/KitchenConfiguratorApp.js +134 -128
- package/es/actions/area-actions.js +5 -8
- package/es/actions/export.js +12 -24
- package/es/actions/groups-actions.js +27 -41
- package/es/actions/holes-actions.js +34 -51
- package/es/actions/items-actions.js +94 -141
- package/es/actions/lines-actions.js +21 -32
- package/es/actions/project-actions.js +94 -141
- package/es/actions/scene-actions.js +11 -17
- package/es/actions/vertices-actions.js +7 -11
- package/es/actions/viewer2d-actions.js +21 -32
- package/es/actions/viewer3d-actions.js +9 -14
- package/es/catalog/areas/area/planner-element.js +2 -5
- package/es/catalog/catalog.js +15 -17
- package/es/catalog/factories/area-factory-3d.js +22 -26
- package/es/catalog/factories/area-factory.js +13 -15
- package/es/catalog/factories/export.js +6 -10
- package/es/catalog/factories/wall-factory-3d.js +31 -36
- package/es/catalog/factories/wall-factory.js +21 -26
- package/es/catalog/holes/door-closet/planner-element.js +15 -19
- package/es/catalog/holes/door-double/planner-element.js +15 -19
- package/es/catalog/holes/door-exterior/planner-element.js +16 -20
- package/es/catalog/holes/door-interior/planner-element.js +16 -20
- package/es/catalog/holes/door-panic/planner-element.js +7 -11
- package/es/catalog/holes/door-panic-double/planner-element.js +15 -19
- package/es/catalog/holes/door-sliding/planner-element.js +17 -21
- package/es/catalog/holes/doorway-framed/planner-element.js +11 -15
- package/es/catalog/holes/doorway-frameless/planner-element.js +7 -11
- package/es/catalog/holes/export.js +13 -29
- package/es/catalog/holes/window-clear/planner-element.js +10 -14
- package/es/catalog/holes/window-cross/planner-element.js +10 -14
- package/es/catalog/holes/window-double-hung/planner-element.js +10 -14
- package/es/catalog/holes/window-vertical/planner-element.js +10 -14
- package/es/catalog/lines/wall/planner-element.js +2 -5
- package/es/catalog/molding/molding-dcm/planner-element.js +5 -9
- package/es/catalog/molding/molding-fbm/planner-element.js +5 -9
- package/es/catalog/molding/molding-lrm/planner-element.js +5 -9
- package/es/catalog/properties/export.js +20 -31
- package/es/catalog/properties/property-checkbox.js +28 -29
- package/es/catalog/properties/property-color.js +16 -19
- package/es/catalog/properties/property-enum.js +24 -27
- package/es/catalog/properties/property-hidden.js +9 -12
- package/es/catalog/properties/property-lenght-measure.js +38 -41
- package/es/catalog/properties/property-length-measure.js +36 -39
- package/es/catalog/properties/property-length-measure_hole.js +38 -41
- package/es/catalog/properties/property-number.js +17 -20
- package/es/catalog/properties/property-read-only.js +16 -19
- package/es/catalog/properties/property-string.js +16 -19
- package/es/catalog/properties/property-toggle.js +16 -19
- package/es/catalog/properties/shared-property-style.js +1 -3
- package/es/catalog/utils/FuseUtils.js +12 -13
- package/es/catalog/utils/exporter.js +10 -11
- package/es/catalog/utils/geom-utils.js +13 -24
- package/es/catalog/utils/item-loader.js +86 -92
- package/es/catalog/utils/load-obj.js +20 -24
- package/es/catalog/utils/mtl-loader.js +3 -4
- package/es/catalog/utils/obj-loader.js +3 -4
- package/es/class/FuseUtils.js +12 -13
- package/es/class/area.js +24 -24
- package/es/class/export.js +23 -36
- package/es/class/group.js +53 -55
- package/es/class/guide.js +15 -17
- package/es/class/hole.js +83 -85
- package/es/class/item.js +155 -155
- package/es/class/layer.js +59 -61
- package/es/class/line.js +135 -138
- package/es/class/project.js +93 -94
- package/es/class/vertex.js +29 -31
- package/es/components/content.js +19 -23
- package/es/components/disclaimer/disclaimer.js +10 -13
- package/es/components/export.js +8 -13
- package/es/components/style/button.js +25 -25
- package/es/components/style/cancel-button.js +7 -10
- package/es/components/style/content-container.js +11 -12
- package/es/components/style/content-title.js +13 -15
- package/es/components/style/delete-button.js +8 -12
- package/es/components/style/export.js +30 -46
- package/es/components/style/form-block.js +10 -11
- package/es/components/style/form-color-input.js +7 -10
- package/es/components/style/form-label.js +10 -11
- package/es/components/style/form-number-input.js +45 -43
- package/es/components/style/form-number-input_2.js +41 -39
- package/es/components/style/form-select.js +19 -20
- package/es/components/style/form-slider.js +10 -13
- package/es/components/style/form-submit-button.js +8 -12
- package/es/components/style/form-text-input.js +30 -28
- package/es/components/viewer2d/area.js +17 -20
- package/es/components/viewer2d/export.js +30 -46
- package/es/components/viewer2d/grids/grid-horizontal-streak.js +10 -13
- package/es/components/viewer2d/grids/grid-streak.js +10 -13
- package/es/components/viewer2d/grids/grid-vertical-streak.js +10 -13
- package/es/components/viewer2d/grids/grids.js +10 -14
- package/es/components/viewer2d/group.js +15 -19
- package/es/components/viewer2d/item.js +61 -65
- package/es/components/viewer2d/layer.js +23 -26
- package/es/components/viewer2d/line.js +101 -106
- package/es/components/viewer2d/ruler.js +22 -25
- package/es/components/viewer2d/rulerDist.js +21 -24
- package/es/components/viewer2d/rulerX.js +46 -44
- package/es/components/viewer2d/rulerY.js +44 -42
- package/es/components/viewer2d/scene.js +34 -34
- package/es/components/viewer2d/snap.js +13 -17
- package/es/components/viewer2d/state.js +18 -22
- package/es/components/viewer2d/utils.js +24 -33
- package/es/components/viewer2d/vertex.js +8 -12
- package/es/components/viewer2d/viewer2d.js +156 -159
- package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +21 -19
- package/es/components/viewer3d/dcm.js +1 -3
- package/es/components/viewer3d/fbm.js +1 -3
- package/es/components/viewer3d/front3D.js +12 -16
- package/es/components/viewer3d/grid-creator.js +8 -12
- package/es/components/viewer3d/grids/grid-horizontal-streak.js +6 -9
- package/es/components/viewer3d/grids/grid-streak.js +5 -8
- package/es/components/viewer3d/grids/grid-vertical-streak.js +6 -9
- package/es/components/viewer3d/libs/first-person-controls.js +2 -5
- package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +1 -3
- package/es/components/viewer3d/libs/mtl-loader.js +1 -3
- package/es/components/viewer3d/libs/obj-loader.js +1 -3
- package/es/components/viewer3d/libs/orbit-controls.js +2 -4
- package/es/components/viewer3d/libs/pointer-lock-controls.js +2 -4
- package/es/components/viewer3d/lrm.js +1 -3
- package/es/components/viewer3d/model.js +1 -3
- package/es/components/viewer3d/pointer-lock-navigation.js +3 -6
- package/es/components/viewer3d/ruler-utils/itemRect.js +18 -21
- package/es/components/viewer3d/ruler-utils/layer3D.js +59 -62
- package/es/components/viewer3d/ruler-utils/ruler3D.js +42 -43
- package/es/components/viewer3d/ruler-utils/scene3D.js +9 -13
- package/es/components/viewer3d/ruler-utils/state3D.js +4 -7
- package/es/components/viewer3d/scene-creator.js +197 -223
- package/es/components/viewer3d/three-memory-cleaner.js +3 -7
- package/es/components/viewer3d/viewer3d-first-person.js +42 -42
- package/es/components/viewer3d/viewer3d.js +200 -198
- package/es/constants.js +349 -354
- package/es/index.js +7 -11
- package/es/models.js +193 -191
- package/es/plugins/SVGLoader.js +48 -49
- package/es/plugins/autosave.js +3 -5
- package/es/plugins/console-debugger.js +6 -7
- package/es/plugins/export.js +8 -13
- package/es/plugins/keyboard.js +29 -31
- package/es/reducers/areas-reducer.js +7 -9
- package/es/reducers/export.js +24 -37
- package/es/reducers/groups-reducer.js +31 -33
- package/es/reducers/holes-reducer.js +43 -45
- package/es/reducers/items-reducer.js +106 -108
- package/es/reducers/lines-reducer.js +28 -30
- package/es/reducers/project-reducer.js +105 -107
- package/es/reducers/reducer.js +16 -19
- package/es/reducers/scene-reducer.js +15 -17
- package/es/reducers/user-reducer.js +5 -7
- package/es/reducers/vertices-reducer.js +11 -13
- package/es/reducers/viewer2d-reducer.js +18 -20
- package/es/reducers/viewer3d-reducer.js +16 -18
- package/es/shared-style.js +10 -12
- package/es/styles/export.js +3 -6
- package/es/translator/en.js +1 -3
- package/es/translator/it.js +1 -3
- package/es/translator/ru.js +1 -3
- package/es/translator/translator.js +13 -15
- package/es/utils/browser.js +2 -5
- package/es/utils/convert-units-lite.js +1 -3
- package/es/utils/email-validator.js +1 -3
- package/es/utils/export.js +15 -29
- package/es/utils/geometry.js +190 -280
- package/es/utils/get-edges-of-subgraphs.js +2 -5
- package/es/utils/graph-cycles.js +8 -7
- package/es/utils/graph-inner-cycles.js +10 -14
- package/es/utils/graph.js +9 -13
- package/es/utils/helper.js +41 -58
- package/es/utils/history.js +8 -11
- package/es/utils/id-broker.js +8 -11
- package/es/utils/logger.js +1 -3
- package/es/utils/math.js +5 -8
- package/es/utils/molding.js +130 -146
- package/es/utils/name-generator.js +7 -9
- package/es/utils/objects-utils.js +7 -14
- package/es/utils/phone-validator.js +1 -3
- package/es/utils/process-black-list.js +5 -6
- package/es/utils/react-if.js +7 -9
- package/es/utils/snap-scene.js +27 -30
- package/es/utils/snap.js +53 -57
- package/es/utils/summarizeCart.js +1 -3
- package/es/utils/threeCSG.es6.js +13 -17
- package/es/version.js +1 -3
- package/package.json +1 -1
|
@@ -1,25 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var SceneCreator = _interopRequireWildcard(require("../../components/viewer3d/scene-creator"));
|
|
18
|
-
var _constants = require("../../constants");
|
|
19
|
-
var _models = require("../../models");
|
|
20
|
-
var GeomUtils = _interopRequireWildcard(require("./geom-utils"));
|
|
21
|
-
var _loadObj = require("./load-obj");
|
|
22
|
-
var _helper = require("../../utils/helper");
|
|
1
|
+
import _typeof from "@babel/runtime/helpers/esm/typeof";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
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
|
+
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
|
+
import { convert } from "../../utils/convert-units-lite";
|
|
7
|
+
import { fromJS, Map } from 'immutable';
|
|
8
|
+
import React, { useState } from 'react';
|
|
9
|
+
import * as Three from 'three';
|
|
10
|
+
import * as SceneCreator from "../../components/viewer3d/scene-creator";
|
|
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
|
+
import { Item } from "../../models";
|
|
13
|
+
import * as GeomUtils from "./geom-utils";
|
|
14
|
+
import { loadGLTF } from "./load-obj";
|
|
15
|
+
import { animateDoor, translateDrawer } from "../../utils/helper";
|
|
16
|
+
|
|
23
17
|
// env Map ///////////////
|
|
24
18
|
var paramsCounter = {
|
|
25
19
|
envMap: 'HDR',
|
|
@@ -49,9 +43,9 @@ var paramsModel = {
|
|
|
49
43
|
var cachedObject = {}; // cached Object for quickly load-3d
|
|
50
44
|
|
|
51
45
|
// render 2d function//////
|
|
52
|
-
function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, shape_svg) {
|
|
53
|
-
var _useState =
|
|
54
|
-
_useState2 = (
|
|
46
|
+
export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, shape_svg) {
|
|
47
|
+
var _useState = useState(false),
|
|
48
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
55
49
|
hover = _useState2[0],
|
|
56
50
|
setHover = _useState2[1];
|
|
57
51
|
var x = element.x,
|
|
@@ -94,24 +88,24 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
94
88
|
length: tempDepth.get('_length'),
|
|
95
89
|
unit: tempDepth.get('_unit')
|
|
96
90
|
};
|
|
97
|
-
var originalWidth =
|
|
98
|
-
var originalDepth =
|
|
99
|
-
var newWidth =
|
|
100
|
-
var newDepth =
|
|
101
|
-
var padding =
|
|
91
|
+
var originalWidth = convert(sizeinfo.width).from('in').to('cm');
|
|
92
|
+
var originalDepth = convert(sizeinfo.depth).from('in').to('cm');
|
|
93
|
+
var newWidth = convert(width.length).from(width.unit).to('cm');
|
|
94
|
+
var newDepth = convert(depth.length).from(depth.unit).to('cm');
|
|
95
|
+
var padding = convert(SHAPE_SVG_PADDING).from(UNIT_INCH).to(UNIT_CENTIMETER);
|
|
102
96
|
var angle = element.rotation + 90;
|
|
103
97
|
var textRotation = 0;
|
|
104
98
|
if (Math.sin(angle * Math.PI / 180) < 0) {
|
|
105
99
|
textRotation = 180;
|
|
106
100
|
}
|
|
107
101
|
var color = '#eee';
|
|
108
|
-
if (layoutpos ==
|
|
102
|
+
if (layoutpos == BASE_CABINET_LAYOUTPOS) {
|
|
109
103
|
color = '#3f8db3';
|
|
110
104
|
}
|
|
111
|
-
if (layoutpos ==
|
|
105
|
+
if (layoutpos == TALL_CABINET_LAYOUTPOS) {
|
|
112
106
|
color = '#93b3be';
|
|
113
107
|
}
|
|
114
|
-
if (layoutpos ==
|
|
108
|
+
if (layoutpos == WALL_CABINET_LAYOUTPOS) {
|
|
115
109
|
color = '#48b08dcc';
|
|
116
110
|
}
|
|
117
111
|
var splitStr = [];
|
|
@@ -125,7 +119,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
125
119
|
if (objSKU.length !== 0) {
|
|
126
120
|
var dcId,
|
|
127
121
|
doorStyle = element.doorStyle;
|
|
128
|
-
if (doorStyle instanceof
|
|
122
|
+
if (doorStyle instanceof Map) {
|
|
129
123
|
dcId = doorStyle.get('id');
|
|
130
124
|
} else {
|
|
131
125
|
dcId = doorStyle.id;
|
|
@@ -144,7 +138,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
144
138
|
}
|
|
145
139
|
splitStr.push(type.slice(lineCount * rowCount));
|
|
146
140
|
splitStr.forEach(function (el, key) {
|
|
147
|
-
txtContent.push(/*#__PURE__*/
|
|
141
|
+
txtContent.push(/*#__PURE__*/React.createElement("text", {
|
|
148
142
|
key: 'text' + key,
|
|
149
143
|
x: "0",
|
|
150
144
|
y: newDepth / 2 - 12,
|
|
@@ -188,12 +182,12 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
188
182
|
// } else {
|
|
189
183
|
// }
|
|
190
184
|
svg_url = shape_svg.url;
|
|
191
|
-
svg_width =
|
|
192
|
-
svg_depth =
|
|
185
|
+
svg_width = convert(SHAPE_SVG_WIDTH).from(UNIT_INCH).to(UNIT_CENTIMETER);
|
|
186
|
+
svg_depth = convert(SHAPE_SVG_DEPTH).from(UNIT_INCH).to(UNIT_CENTIMETER);
|
|
193
187
|
}
|
|
194
188
|
var padding_width = padding * newWidth / svg_width;
|
|
195
189
|
var padding_depth = padding * newDepth / svg_depth;
|
|
196
|
-
rendered = /*#__PURE__*/
|
|
190
|
+
rendered = /*#__PURE__*/React.createElement("g", {
|
|
197
191
|
onMouseOver: function onMouseOver(event) {
|
|
198
192
|
setHover(true);
|
|
199
193
|
},
|
|
@@ -201,11 +195,11 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
201
195
|
setHover(false);
|
|
202
196
|
},
|
|
203
197
|
transform: "translate(".concat(x, ",").concat(y, ")")
|
|
204
|
-
}, /*#__PURE__*/
|
|
198
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
205
199
|
transform: "rotate(".concat(rotation, ")")
|
|
206
|
-
}, /*#__PURE__*/
|
|
200
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
207
201
|
transform: "translate(".concat(-newWidth / 2 - padding_width, ",").concat(-newDepth / 2 - padding_depth, ")")
|
|
208
|
-
}, /*#__PURE__*/
|
|
202
|
+
}, /*#__PURE__*/React.createElement("image", {
|
|
209
203
|
preserveAspectRatio: "none",
|
|
210
204
|
style: {
|
|
211
205
|
pointerEvents: 'none'
|
|
@@ -216,7 +210,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
216
210
|
transform: "scale(1, -1)",
|
|
217
211
|
x: "0",
|
|
218
212
|
y: "".concat(-newDepth - 2 * padding_depth)
|
|
219
|
-
}), /*#__PURE__*/
|
|
213
|
+
}), /*#__PURE__*/React.createElement("rect", {
|
|
220
214
|
x: "".concat(padding_width),
|
|
221
215
|
y: "".concat(padding_depth),
|
|
222
216
|
width: "".concat(newWidth),
|
|
@@ -229,14 +223,14 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
229
223
|
opacity: 0.7,
|
|
230
224
|
postion: 'relative'
|
|
231
225
|
},
|
|
232
|
-
fill:
|
|
233
|
-
stroke:
|
|
226
|
+
fill: STATUS_WARNING_LIGHT_COLOR,
|
|
227
|
+
stroke: STATUS_WARNING_COLOR,
|
|
234
228
|
strokeWidth: "2px"
|
|
235
|
-
}), /*#__PURE__*/
|
|
229
|
+
}), /*#__PURE__*/React.createElement("g", {
|
|
236
230
|
transform: "translate(".concat(padding_width, ",").concat(padding_depth, ")")
|
|
237
231
|
}, txtContent))));
|
|
238
232
|
} else {
|
|
239
|
-
rendered = /*#__PURE__*/
|
|
233
|
+
rendered = /*#__PURE__*/React.createElement("g", {
|
|
240
234
|
onMouseOver: function onMouseOver(event) {
|
|
241
235
|
setHover(true);
|
|
242
236
|
},
|
|
@@ -244,22 +238,22 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
244
238
|
setHover(false);
|
|
245
239
|
},
|
|
246
240
|
transform: "translate(".concat(x, ",").concat(y, ")")
|
|
247
|
-
}, /*#__PURE__*/
|
|
241
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
248
242
|
transform: "rotate(".concat(rotation, ")")
|
|
249
|
-
}, /*#__PURE__*/
|
|
243
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
250
244
|
transform: "translate(".concat(-newWidth / 2, ",").concat(-newDepth / 2, ")")
|
|
251
|
-
}, newDepth > 15 ? [/*#__PURE__*/
|
|
245
|
+
}, newDepth > 15 ? [/*#__PURE__*/React.createElement("rect", {
|
|
252
246
|
key: "base",
|
|
253
247
|
x: "0",
|
|
254
248
|
y: "12",
|
|
255
249
|
width: newWidth,
|
|
256
250
|
height: newDepth - 12,
|
|
257
251
|
style: style
|
|
258
|
-
}), /*#__PURE__*/
|
|
252
|
+
}), /*#__PURE__*/React.createElement("polygon", {
|
|
259
253
|
key: "door",
|
|
260
254
|
style: style,
|
|
261
255
|
points: "0,9 ".concat(newWidth, ",9 ").concat(newWidth, ",6 ").concat(newWidth - 5, ",6 ").concat(newWidth - 5, ",3 ").concat(newWidth - 2, ",3 ").concat(newWidth - 2, " 0 ").concat(newWidth - 10, " 0 ").concat(newWidth - 10, ",3 ").concat(newWidth - 7, ",3 ").concat(newWidth - 7, ",6 0 6")
|
|
262
|
-
})] : /*#__PURE__*/
|
|
256
|
+
})] : /*#__PURE__*/React.createElement("rect", {
|
|
263
257
|
key: "base",
|
|
264
258
|
x: "0",
|
|
265
259
|
y: "0",
|
|
@@ -272,7 +266,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
272
266
|
}
|
|
273
267
|
// end of render 2d function /////////////////////////
|
|
274
268
|
|
|
275
|
-
function loadTexture(url) {
|
|
269
|
+
export function loadTexture(url) {
|
|
276
270
|
var texture = new Three.TextureLoader().load(url);
|
|
277
271
|
texture.colorSpace = Three.SRGBColorSpace;
|
|
278
272
|
texture.wrapS = Three.MirroredRepeatWrapping;
|
|
@@ -317,10 +311,10 @@ var assignUVs = function assignUVs(geometry) {
|
|
|
317
311
|
* @param sizeinfo Dimesion of the item
|
|
318
312
|
* @param structure_json Structure of the item such as place holders and meshes, etc
|
|
319
313
|
*/
|
|
320
|
-
function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner) {
|
|
314
|
+
export function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner) {
|
|
321
315
|
var mode = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
322
|
-
if (element.doorStyle.constructor !==
|
|
323
|
-
element = element.set('doorStyle',
|
|
316
|
+
if (element.doorStyle.constructor !== Map) {
|
|
317
|
+
element = element.set('doorStyle', fromJS(element.doorStyle));
|
|
324
318
|
}
|
|
325
319
|
if (element.doorStyle.toJS().handle_gltf !== '') {
|
|
326
320
|
// Check element has doorHandle
|
|
@@ -342,9 +336,9 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
342
336
|
length: sizeinfo.height,
|
|
343
337
|
unit: 'in'
|
|
344
338
|
};
|
|
345
|
-
var newWidth =
|
|
346
|
-
var newDepth =
|
|
347
|
-
var newHeight =
|
|
339
|
+
var newWidth = convert(width.length).from(width.unit).to('in');
|
|
340
|
+
var newDepth = convert(depth.length).from(depth.unit).to('in');
|
|
341
|
+
var newHeight = convert(height.length).from(height.unit).to('in');
|
|
348
342
|
var mainName = ''; // to get name structure//
|
|
349
343
|
if (element.properties.get('width')) newWidth = element.getIn(['properties', 'width', '_length']);
|
|
350
344
|
if (element.properties.get('depth')) newDepth = element.getIn(['properties', 'depth', '_length']);
|
|
@@ -362,7 +356,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
362
356
|
counterTop.uri = layer.toJS().counterTop.uri;
|
|
363
357
|
}
|
|
364
358
|
if ('name' in element.doorStyle) {
|
|
365
|
-
doorStyles = new
|
|
359
|
+
doorStyles = new Map(element.doorStyle.doorStyles);
|
|
366
360
|
color = element.doorStyle.color;
|
|
367
361
|
glossness = element.doorStyle.glossness;
|
|
368
362
|
handleMaterial.metalness = element.doorStyle.metalness;
|
|
@@ -383,7 +377,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
383
377
|
});
|
|
384
378
|
if (tPlaceholders !== undefined) {
|
|
385
379
|
placeholders = tPlaceholders.placeholders;
|
|
386
|
-
var tempStructure = (
|
|
380
|
+
var tempStructure = _objectSpread(_objectSpread({}, tPlaceholders.structure), {}, {
|
|
387
381
|
animation: structure.animation,
|
|
388
382
|
placeholders: structure.placeholders,
|
|
389
383
|
tempPlaceholders: structure.tempPlaceholders,
|
|
@@ -405,7 +399,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
405
399
|
var object1 = object;
|
|
406
400
|
var newAltitude = element.properties.get('altitude').get('_length');
|
|
407
401
|
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
408
|
-
newAltitude =
|
|
402
|
+
newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
|
|
409
403
|
var _element = element.toJS();
|
|
410
404
|
if (!_element.doorStyle.doorStyles.is_euro_cds) {
|
|
411
405
|
object1.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
|
|
@@ -543,7 +537,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
543
537
|
transparent: true,
|
|
544
538
|
opacity: 0.4
|
|
545
539
|
}));
|
|
546
|
-
var _color = new Three.Color(
|
|
540
|
+
var _color = new Three.Color(SHADE_DARK_PURPLE_COLOR).convertLinearToSRGB();
|
|
547
541
|
var vLine = new Three.Line(vLineGeom, new Three.LineBasicMaterial({
|
|
548
542
|
color: _color
|
|
549
543
|
}));
|
|
@@ -625,7 +619,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
625
619
|
SceneCreator.updateDoorHandleMesh(element, object1, true);
|
|
626
620
|
}
|
|
627
621
|
object1.traverse(function (obj) {
|
|
628
|
-
if (obj.type ===
|
|
622
|
+
if (obj.type === OBJTYPE_MESH) {
|
|
629
623
|
var name = obj.name;
|
|
630
624
|
if (name.match(/_door_.*_glass_/)) {
|
|
631
625
|
var material = new Three.MeshPhysicalMaterial({
|
|
@@ -680,10 +674,10 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
680
674
|
if (isDoor) {
|
|
681
675
|
var offsetData = object1.userData.door_animate_offset[obj.name];
|
|
682
676
|
// Open Door
|
|
683
|
-
|
|
677
|
+
animateDoor(offsetData, obj, open_doors, element.toJS(), is_corner, 'Opened2D');
|
|
684
678
|
} else {
|
|
685
679
|
// Open Drawer
|
|
686
|
-
|
|
680
|
+
translateDrawer(element.toJS(), obj, open_doors, 'Opened2D');
|
|
687
681
|
}
|
|
688
682
|
}
|
|
689
683
|
}
|
|
@@ -755,7 +749,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
755
749
|
_url = structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())];
|
|
756
750
|
}
|
|
757
751
|
}
|
|
758
|
-
if ((
|
|
752
|
+
if (_typeof(_url) == Array) _url = _url[0];
|
|
759
753
|
var uData = _url.split('/');
|
|
760
754
|
uData = uData[uData.length - 1];
|
|
761
755
|
uData = uData.slice(0, -5);
|
|
@@ -800,7 +794,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
800
794
|
} else {
|
|
801
795
|
structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = null;
|
|
802
796
|
}
|
|
803
|
-
return
|
|
797
|
+
return loadGLTF(loadUrl).then(function (object) {
|
|
804
798
|
if (normalMap !== '') {
|
|
805
799
|
var normalUrl = normalMap.split('.')[0] + '-normal.' + normalMap.split('.')[1];
|
|
806
800
|
var t = loadTexture(normalMap);
|
|
@@ -813,7 +807,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
813
807
|
mat2.normalMap = _m;
|
|
814
808
|
// mat2.envMap = textureCube;
|
|
815
809
|
for (var _j3 = 0; _j3 < object.children.length; _j3++) {
|
|
816
|
-
if (object.children[_j3].type ===
|
|
810
|
+
if (object.children[_j3].type === OBJTYPE_MESH) {
|
|
817
811
|
object.children[_j3].material = mat2;
|
|
818
812
|
object.children[_j3].receiveShadow = true;
|
|
819
813
|
}
|
|
@@ -845,12 +839,12 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
845
839
|
}
|
|
846
840
|
// mat2.envMap = textureCube;
|
|
847
841
|
for (var _j4 = 0; _j4 < object.children.length; _j4++) {
|
|
848
|
-
if (object.children[_j4].type ===
|
|
842
|
+
if (object.children[_j4].type === OBJTYPE_MESH) {
|
|
849
843
|
object.children[_j4].material = _mat;
|
|
850
844
|
object.children[_j4].receiveShadow = true;
|
|
851
845
|
object.children[_j4].castShadow = true;
|
|
852
846
|
!object.children[_j4].name.includes('handle') && addEdgesToMesh(object.children[_j4]);
|
|
853
|
-
} else if (!object.children[_j4].name.startsWith('ph_') && object.children[_j4].type ===
|
|
847
|
+
} else if (!object.children[_j4].name.startsWith('ph_') && object.children[_j4].type === OBJTYPE_GROUP) {
|
|
854
848
|
object.children[_j4].traverse(function (prim) {
|
|
855
849
|
prim.material = _mat;
|
|
856
850
|
prim.receiveShadow = true;
|
|
@@ -864,7 +858,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
864
858
|
});
|
|
865
859
|
// mat2.envMap = textureCube;
|
|
866
860
|
for (var _j5 = 0; _j5 < object.children.length; _j5++) {
|
|
867
|
-
if (object.children[_j5].type ===
|
|
861
|
+
if (object.children[_j5].type === OBJTYPE_MESH) {
|
|
868
862
|
object.children[_j5].material = _mat2;
|
|
869
863
|
object.children[_j5].receiveShadow = true;
|
|
870
864
|
}
|
|
@@ -888,7 +882,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
888
882
|
if (placeholder.includes('drawer_door') && placeholder.includes('_handle')) {
|
|
889
883
|
tmp.rotateZ(Math.PI / 2);
|
|
890
884
|
}
|
|
891
|
-
if (placeholder.includes('_handle') && tmp.children[0].type ===
|
|
885
|
+
if (placeholder.includes('_handle') && tmp.children[0].type === OBJTYPE_MESH) {
|
|
892
886
|
// NOTE: change metalness of handle
|
|
893
887
|
tmp.children[0].material.metalness = 1;
|
|
894
888
|
// handleMaterial.metalness || 0.2;
|
|
@@ -909,7 +903,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
909
903
|
});
|
|
910
904
|
}
|
|
911
905
|
};
|
|
912
|
-
return
|
|
906
|
+
return loadGLTF(structure['base']).then(function (object) {
|
|
913
907
|
object.name = 'MainObject';
|
|
914
908
|
object.receiveShadow = true;
|
|
915
909
|
objGroup = object;
|
|
@@ -986,7 +980,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
986
980
|
addEdgesToMesh(object.children[j]);
|
|
987
981
|
} else if (object.children[j].name.includes('_interior_')) {
|
|
988
982
|
object.children[j].material = mat4;
|
|
989
|
-
} else if (object.children[j].type ===
|
|
983
|
+
} else if (object.children[j].type === OBJTYPE_MESH) {
|
|
990
984
|
object.children[j].material = mat2;
|
|
991
985
|
object.children[j].receiveShadow = true;
|
|
992
986
|
object.children[j].castShadow = true;
|
|
@@ -1002,7 +996,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
1002
996
|
}
|
|
1003
997
|
|
|
1004
998
|
// render 3d appliance function ////////////////////////////////
|
|
1005
|
-
function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json) {
|
|
999
|
+
export function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json) {
|
|
1006
1000
|
var mode = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
|
1007
1001
|
var structure = structure_json;
|
|
1008
1002
|
var applianceMaterial = element.applianceMaterial;
|
|
@@ -1010,16 +1004,16 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1010
1004
|
var onLoadItem = function onLoadItem(object) {
|
|
1011
1005
|
var newAltitude = element.properties.get('altitude').get('_length');
|
|
1012
1006
|
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
1013
|
-
newAltitude =
|
|
1007
|
+
newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
|
|
1014
1008
|
var newWidth = element.properties.get('width').get('_length');
|
|
1015
1009
|
var newWidthUnit = element.properties.get('width').get('_unit') || 'in';
|
|
1016
|
-
newWidth =
|
|
1010
|
+
newWidth = convert(newWidth).from(newWidthUnit).to('in');
|
|
1017
1011
|
var newHeight = element.properties.get('height').get('_length');
|
|
1018
1012
|
var newHeightUnit = element.properties.get('height').get('_unit') || 'in';
|
|
1019
|
-
newHeight =
|
|
1013
|
+
newHeight = convert(newHeight).from(newHeightUnit).to('in');
|
|
1020
1014
|
var newDepth = element.properties.get('depth').get('_length');
|
|
1021
1015
|
var newDepthUnit = element.properties.get('depth').get('_unit') || 'in';
|
|
1022
|
-
newDepth =
|
|
1016
|
+
newDepth = convert(newDepth).from(newDepthUnit).to('in');
|
|
1023
1017
|
object.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
|
|
1024
1018
|
// Normalize the origin of the object
|
|
1025
1019
|
var boundingBox = new Three.Box3().setFromObject(object);
|
|
@@ -1030,7 +1024,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1030
1024
|
object.position.z -= center[2];
|
|
1031
1025
|
object.position.y += newAltitude;
|
|
1032
1026
|
object.traverse(function (obj) {
|
|
1033
|
-
if (obj.type ===
|
|
1027
|
+
if (obj.type === OBJTYPE_MESH) {
|
|
1034
1028
|
var name = obj.name;
|
|
1035
1029
|
var texture,
|
|
1036
1030
|
textureLoader = new Three.TextureLoader();
|
|
@@ -1142,7 +1136,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1142
1136
|
transparent: true,
|
|
1143
1137
|
opacity: 0.4
|
|
1144
1138
|
}));
|
|
1145
|
-
var color = new Three.Color(
|
|
1139
|
+
var color = new Three.Color(ARROW_COLOR).convertLinearToSRGB();
|
|
1146
1140
|
var vLine = new Three.Line(vLineGeom, new Three.LineBasicMaterial({
|
|
1147
1141
|
color: color
|
|
1148
1142
|
}));
|
|
@@ -1242,7 +1236,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1242
1236
|
|
|
1243
1237
|
// load base to start //
|
|
1244
1238
|
// return loadGLTF(dirName + structure["base"])
|
|
1245
|
-
return
|
|
1239
|
+
return loadGLTF(structure['base']).then(function (object) {
|
|
1246
1240
|
// let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
|
|
1247
1241
|
// let texture = loadTexture(textureURL);
|
|
1248
1242
|
// texture.wrapS = Three.MirroredRepeatWrapping;
|
|
@@ -1258,7 +1252,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1258
1252
|
// mat2.envMap = textureCube;
|
|
1259
1253
|
object.material = mat2;
|
|
1260
1254
|
for (var j = 0; j < object.children.length; j++) {
|
|
1261
|
-
if (object.children[j].type ===
|
|
1255
|
+
if (object.children[j].type === OBJTYPE_MESH) {
|
|
1262
1256
|
object.children[j].material = mat2;
|
|
1263
1257
|
object.children[j].receiveShadow = true;
|
|
1264
1258
|
object.children[j].castShadow = true; // change
|
|
@@ -1273,7 +1267,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1273
1267
|
});
|
|
1274
1268
|
}
|
|
1275
1269
|
// render 3d appliance function ////////////////////////////////
|
|
1276
|
-
function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
1270
|
+
export function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
1277
1271
|
var mode = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
|
1278
1272
|
var structure = structure_json;
|
|
1279
1273
|
var onLoadItem = function onLoadItem(object) {
|
|
@@ -1289,12 +1283,12 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1289
1283
|
length: sizeinfo.height,
|
|
1290
1284
|
unit: 'in'
|
|
1291
1285
|
};
|
|
1292
|
-
var newWidth =
|
|
1293
|
-
var newDepth =
|
|
1294
|
-
var newHeight =
|
|
1286
|
+
var newWidth = convert(width.length).from(width.unit).to('cm');
|
|
1287
|
+
var newDepth = convert(depth.length).from(depth.unit).to('cm');
|
|
1288
|
+
var newHeight = convert(height.length).from(height.unit).to('cm');
|
|
1295
1289
|
var newAltitude = element.properties.get('altitude').get('_length');
|
|
1296
1290
|
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
1297
|
-
newAltitude =
|
|
1291
|
+
newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
|
|
1298
1292
|
|
|
1299
1293
|
//object.scale.set(newWidth, newHeight, newDepth);
|
|
1300
1294
|
object.scale.set(100, 100, 100);
|
|
@@ -1374,7 +1368,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1374
1368
|
transparent: true,
|
|
1375
1369
|
opacity: 0.4
|
|
1376
1370
|
}));
|
|
1377
|
-
var color = new Three.Color(
|
|
1371
|
+
var color = new Three.Color(ARROW_COLOR).convertLinearToSRGB();
|
|
1378
1372
|
var vLine = new Three.Line(vLineGeom, new Three.LineBasicMaterial({
|
|
1379
1373
|
color: color
|
|
1380
1374
|
}));
|
|
@@ -1480,7 +1474,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1480
1474
|
|
|
1481
1475
|
// load base to start //
|
|
1482
1476
|
// return loadGLTF(dirName + structure["base"])
|
|
1483
|
-
return
|
|
1477
|
+
return loadGLTF(structure['base']).then(function (object) {
|
|
1484
1478
|
// let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
|
|
1485
1479
|
// let texture = loadTexture(textureURL);
|
|
1486
1480
|
// texture.wrapS = Three.MirroredRepeatWrapping;
|
|
@@ -1495,7 +1489,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1495
1489
|
// mat2.envMap = textureCube;
|
|
1496
1490
|
object.material = mat2;
|
|
1497
1491
|
for (var j = 0; j < object.children.length; j++) {
|
|
1498
|
-
if (object.children[j].type ===
|
|
1492
|
+
if (object.children[j].type === OBJTYPE_MESH) {
|
|
1499
1493
|
object.children[j].material = mat2;
|
|
1500
1494
|
object.children[j].receiveShadow = true;
|
|
1501
1495
|
}
|
|
@@ -1508,7 +1502,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1508
1502
|
return _loadGLTFs3(0);
|
|
1509
1503
|
});
|
|
1510
1504
|
}
|
|
1511
|
-
function addEdgesToMesh(inChild) {
|
|
1505
|
+
export function addEdgesToMesh(inChild) {
|
|
1512
1506
|
var boxEdge = new Three.EdgesGeometry(inChild.geometry, 10);
|
|
1513
1507
|
var boxEdgeMaterial = new Three.LineBasicMaterial({
|
|
1514
1508
|
color: 0x000000,
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var _constants = require("../../constants");
|
|
11
|
-
function loadObjWithMaterial(mtlFile, objFile, imgPath) {
|
|
12
|
-
var manager = new _three.LoadingManager();
|
|
13
|
-
var mtlLoader = new _MTLLoader.MTLLoader(manager);
|
|
1
|
+
import { Box3, BufferAttribute, BufferGeometry, LoaderUtils, LoadingManager, Vector3 } from 'three';
|
|
2
|
+
import { MTLLoader } from 'three/examples/jsm/loaders/MTLLoader.js';
|
|
3
|
+
import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js';
|
|
4
|
+
import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js';
|
|
5
|
+
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader.js';
|
|
6
|
+
import { OBJTYPE_MESH } from "../../constants";
|
|
7
|
+
export function loadObjWithMaterial(mtlFile, objFile, imgPath) {
|
|
8
|
+
var manager = new LoadingManager();
|
|
9
|
+
var mtlLoader = new MTLLoader(manager);
|
|
14
10
|
// mtlLoader.setPath(imgPath);
|
|
15
11
|
var url = mtlFile;
|
|
16
12
|
return new Promise(function (resolve, reject) {
|
|
17
13
|
mtlLoader.load(url, function (materials) {
|
|
18
14
|
materials.preload();
|
|
19
|
-
var objLoader = new
|
|
15
|
+
var objLoader = new OBJLoader();
|
|
20
16
|
objLoader.setMaterials(materials);
|
|
21
17
|
objLoader.load(objFile, function (object) {
|
|
22
18
|
return resolve(object);
|
|
@@ -24,12 +20,12 @@ function loadObjWithMaterial(mtlFile, objFile, imgPath) {
|
|
|
24
20
|
});
|
|
25
21
|
});
|
|
26
22
|
}
|
|
27
|
-
function loadGLTF(url) {
|
|
23
|
+
export function loadGLTF(url) {
|
|
28
24
|
if (url == undefined) {
|
|
29
25
|
return Promise.reject('No url is passed');
|
|
30
26
|
}
|
|
31
|
-
var baseURL =
|
|
32
|
-
var manager = new
|
|
27
|
+
var baseURL = LoaderUtils.extractUrlBase(url);
|
|
28
|
+
var manager = new LoadingManager();
|
|
33
29
|
|
|
34
30
|
// Intercept and override relative URLs.
|
|
35
31
|
manager.setURLModifier(function (url, path) {
|
|
@@ -46,9 +42,9 @@ function loadGLTF(url) {
|
|
|
46
42
|
// }
|
|
47
43
|
return (path || '') + url;
|
|
48
44
|
});
|
|
49
|
-
var loader = new
|
|
45
|
+
var loader = new GLTFLoader(manager);
|
|
50
46
|
loader.setCrossOrigin('anonymous');
|
|
51
|
-
var dracoLoader = new
|
|
47
|
+
var dracoLoader = new DRACOLoader();
|
|
52
48
|
dracoLoader.setDecoderPath('/assets/draco/');
|
|
53
49
|
loader.setDRACOLoader(dracoLoader);
|
|
54
50
|
return new Promise(function (resolve, reject) {
|
|
@@ -66,15 +62,15 @@ function loadGLTF(url) {
|
|
|
66
62
|
});
|
|
67
63
|
});
|
|
68
64
|
}
|
|
69
|
-
function scaleObject(object, defaultSizeArray, scaleSizeArray) {
|
|
70
|
-
var boundingBox = new
|
|
71
|
-
var initialSizeArray = boundingBox.getSize(new
|
|
65
|
+
export function scaleObject(object, defaultSizeArray, scaleSizeArray) {
|
|
66
|
+
var boundingBox = new Box3().setFromObject(object);
|
|
67
|
+
var initialSizeArray = boundingBox.getSize(new Vector3()).toArray();
|
|
72
68
|
for (var i = 0; i < 3; i++) {
|
|
73
69
|
scaleSizeArray[i] -= defaultSizeArray[i];
|
|
74
70
|
defaultSizeArray[i] /= initialSizeArray[i];
|
|
75
71
|
}
|
|
76
72
|
object.children.forEach(function (child) {
|
|
77
|
-
if (child.type ==
|
|
73
|
+
if (child.type == OBJTYPE_MESH && child.geometry instanceof BufferGeometry) {
|
|
78
74
|
var position = child.geometry.attributes.position;
|
|
79
75
|
var new_pos = position.array.map(function (v, i, a) {
|
|
80
76
|
var j = i % 3;
|
|
@@ -85,7 +81,7 @@ function scaleObject(object, defaultSizeArray, scaleSizeArray) {
|
|
|
85
81
|
}
|
|
86
82
|
return v;
|
|
87
83
|
});
|
|
88
|
-
var new_geom = child.geometry.clone().setAttribute('position', new
|
|
84
|
+
var new_geom = child.geometry.clone().setAttribute('position', new BufferAttribute(new_pos, 3));
|
|
89
85
|
new_geom.computeBoundingBox();
|
|
90
86
|
new_geom.computeBoundingSphere();
|
|
91
87
|
child.geometry.dispose();
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
exports.__esModule = true;
|
|
2
|
-
exports["default"] = exports.MTLLoader = void 0;
|
|
3
1
|
/**
|
|
4
2
|
* Loads a Wavefront .mtl file specifying materials
|
|
5
3
|
*
|
|
@@ -8,7 +6,7 @@ exports["default"] = exports.MTLLoader = void 0;
|
|
|
8
6
|
|
|
9
7
|
var THREE = window.THREE;
|
|
10
8
|
var MTLLoader;
|
|
11
|
-
|
|
9
|
+
MTLLoader = function MTLLoader(manager) {
|
|
12
10
|
this.manager = manager !== undefined ? manager : THREE.DefaultLoadingManager;
|
|
13
11
|
};
|
|
14
12
|
Object.assign(MTLLoader.prototype, THREE.EventDispatcher.prototype, {
|
|
@@ -356,4 +354,5 @@ MTLLoader.MaterialCreator.prototype = {
|
|
|
356
354
|
return texture;
|
|
357
355
|
}
|
|
358
356
|
};
|
|
359
|
-
|
|
357
|
+
export default MTLLoader;
|
|
358
|
+
export { MTLLoader };
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
exports.__esModule = true;
|
|
2
|
-
exports["default"] = exports.OBJLoader = void 0;
|
|
3
1
|
/**
|
|
4
2
|
* @author mrdoob / http://mrdoob.com/
|
|
5
3
|
*/
|
|
6
4
|
var THREE = window.THREE;
|
|
7
5
|
var OBJLoader;
|
|
8
|
-
|
|
6
|
+
OBJLoader = function () {
|
|
9
7
|
// o object_name | g group_name
|
|
10
8
|
var object_pattern = /^[og]\s*(.+)?/;
|
|
11
9
|
// mtllib file_reference
|
|
@@ -475,4 +473,5 @@ exports.OBJLoader = OBJLoader = function () {
|
|
|
475
473
|
};
|
|
476
474
|
return OBJLoader;
|
|
477
475
|
}();
|
|
478
|
-
|
|
476
|
+
export default OBJLoader;
|
|
477
|
+
export { OBJLoader };
|