kitchen-simulator 1.1.1-test.61 → 1.1.1-test.63
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 -10
- package/es/AppContext.js +3 -10
- package/es/KitchenConfigurator.js +70 -79
- package/es/KitchenConfiguratorApp.js +98 -107
- package/es/actions/area-actions.js +5 -12
- package/es/actions/export.js +12 -29
- package/es/actions/groups-actions.js +27 -45
- package/es/actions/holes-actions.js +34 -55
- package/es/actions/items-actions.js +94 -145
- package/es/actions/lines-actions.js +21 -36
- package/es/actions/project-actions.js +94 -145
- package/es/actions/scene-actions.js +11 -21
- package/es/actions/vertices-actions.js +7 -15
- package/es/actions/viewer2d-actions.js +21 -36
- package/es/actions/viewer3d-actions.js +9 -18
- package/es/catalog/areas/area/planner-element.js +2 -9
- package/es/catalog/catalog.js +15 -21
- package/es/catalog/factories/area-factory-3d.js +22 -31
- package/es/catalog/factories/area-factory.js +11 -20
- package/es/catalog/factories/export.js +6 -24
- package/es/catalog/factories/wall-factory-3d.js +31 -41
- package/es/catalog/factories/wall-factory.js +21 -31
- package/es/catalog/holes/door-closet/planner-element.js +15 -24
- package/es/catalog/holes/door-double/planner-element.js +15 -24
- package/es/catalog/holes/door-exterior/planner-element.js +16 -25
- package/es/catalog/holes/door-interior/planner-element.js +16 -25
- package/es/catalog/holes/door-panic/planner-element.js +7 -16
- package/es/catalog/holes/door-panic-double/planner-element.js +15 -24
- package/es/catalog/holes/door-sliding/planner-element.js +16 -25
- package/es/catalog/holes/doorway-framed/planner-element.js +11 -20
- package/es/catalog/holes/doorway-frameless/planner-element.js +7 -16
- package/es/catalog/holes/export.js +13 -97
- package/es/catalog/holes/window-clear/planner-element.js +10 -19
- package/es/catalog/holes/window-cross/planner-element.js +10 -19
- package/es/catalog/holes/window-double-hung/planner-element.js +10 -19
- package/es/catalog/holes/window-vertical/planner-element.js +10 -19
- package/es/catalog/lines/wall/planner-element.js +2 -9
- package/es/catalog/molding/molding-dcm/planner-element.js +5 -14
- package/es/catalog/molding/molding-fbm/planner-element.js +5 -14
- package/es/catalog/molding/molding-lrm/planner-element.js +5 -14
- package/es/catalog/properties/export.js +20 -80
- package/es/catalog/properties/property-checkbox.js +24 -31
- package/es/catalog/properties/property-color.js +16 -23
- package/es/catalog/properties/property-enum.js +24 -31
- package/es/catalog/properties/property-hidden.js +9 -16
- package/es/catalog/properties/property-lenght-measure.js +38 -45
- package/es/catalog/properties/property-length-measure.js +36 -43
- package/es/catalog/properties/property-length-measure_hole.js +38 -45
- package/es/catalog/properties/property-number.js +17 -24
- package/es/catalog/properties/property-read-only.js +16 -23
- package/es/catalog/properties/property-string.js +16 -23
- package/es/catalog/properties/property-toggle.js +16 -23
- package/es/catalog/properties/shared-property-style.js +1 -7
- package/es/catalog/utils/FuseUtils.js +8 -15
- package/es/catalog/utils/exporter.js +8 -15
- package/es/catalog/utils/geom-utils.js +13 -29
- package/es/catalog/utils/item-loader.js +84 -97
- package/es/catalog/utils/load-obj.js +20 -28
- package/es/catalog/utils/mtl-loader.js +3 -8
- package/es/catalog/utils/obj-loader.js +3 -8
- package/es/class/FuseUtils.js +8 -15
- package/es/class/area.js +22 -28
- package/es/class/export.js +23 -95
- package/es/class/group.js +53 -59
- package/es/class/guide.js +15 -21
- package/es/class/hole.js +83 -89
- package/es/class/item.js +141 -147
- package/es/class/layer.js +59 -65
- package/es/class/line.js +135 -143
- package/es/class/project.js +90 -98
- package/es/class/vertex.js +29 -35
- package/es/components/content.js +19 -28
- package/es/components/disclaimer/disclaimer.js +10 -18
- package/es/components/export.js +8 -32
- package/es/components/style/button.js +23 -31
- package/es/components/style/cancel-button.js +7 -14
- package/es/components/style/content-container.js +9 -16
- package/es/components/style/content-title.js +11 -20
- package/es/components/style/delete-button.js +8 -17
- package/es/components/style/export.js +30 -120
- package/es/components/style/form-block.js +8 -15
- package/es/components/style/form-color-input.js +7 -14
- package/es/components/style/form-label.js +8 -15
- package/es/components/style/form-number-input.js +41 -49
- package/es/components/style/form-number-input_2.js +36 -44
- package/es/components/style/form-select.js +17 -24
- package/es/components/style/form-slider.js +10 -17
- package/es/components/style/form-submit-button.js +8 -17
- package/es/components/style/form-text-input.js +26 -34
- package/es/components/viewer2d/area.js +17 -24
- package/es/components/viewer2d/export.js +30 -120
- package/es/components/viewer2d/grids/grid-horizontal-streak.js +10 -17
- package/es/components/viewer2d/grids/grid-streak.js +10 -17
- package/es/components/viewer2d/grids/grid-vertical-streak.js +10 -17
- package/es/components/viewer2d/grids/grids.js +10 -19
- package/es/components/viewer2d/group.js +15 -24
- package/es/components/viewer2d/item.js +61 -70
- package/es/components/viewer2d/layer.js +23 -30
- package/es/components/viewer2d/line.js +101 -111
- package/es/components/viewer2d/ruler.js +22 -29
- package/es/components/viewer2d/rulerDist.js +21 -28
- package/es/components/viewer2d/rulerX.js +39 -47
- package/es/components/viewer2d/rulerY.js +37 -45
- package/es/components/viewer2d/scene.js +30 -38
- package/es/components/viewer2d/snap.js +13 -22
- package/es/components/viewer2d/state.js +18 -27
- package/es/components/viewer2d/utils.js +24 -37
- package/es/components/viewer2d/vertex.js +8 -17
- package/es/components/viewer2d/viewer2d.js +153 -163
- package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +17 -23
- package/es/components/viewer3d/dcm.js +1 -7
- package/es/components/viewer3d/fbm.js +1 -7
- package/es/components/viewer3d/front3D.js +12 -21
- package/es/components/viewer3d/grid-creator.js +8 -17
- package/es/components/viewer3d/grids/grid-horizontal-streak.js +6 -14
- package/es/components/viewer3d/grids/grid-streak.js +5 -13
- package/es/components/viewer3d/grids/grid-vertical-streak.js +6 -14
- package/es/components/viewer3d/libs/first-person-controls.js +2 -9
- package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +1 -7
- package/es/components/viewer3d/libs/mtl-loader.js +1 -7
- package/es/components/viewer3d/libs/obj-loader.js +1 -7
- package/es/components/viewer3d/libs/orbit-controls.js +2 -8
- package/es/components/viewer3d/libs/pointer-lock-controls.js +2 -8
- package/es/components/viewer3d/lrm.js +1 -7
- package/es/components/viewer3d/model.js +1 -7
- package/es/components/viewer3d/pointer-lock-navigation.js +3 -10
- package/es/components/viewer3d/ruler-utils/itemRect.js +18 -25
- package/es/components/viewer3d/ruler-utils/layer3D.js +59 -66
- package/es/components/viewer3d/ruler-utils/ruler3D.js +39 -46
- package/es/components/viewer3d/ruler-utils/scene3D.js +9 -17
- package/es/components/viewer3d/ruler-utils/state3D.js +4 -11
- package/es/components/viewer3d/scene-creator.js +191 -226
- package/es/components/viewer3d/three-memory-cleaner.js +3 -12
- package/es/components/viewer3d/viewer3d-first-person.js +40 -46
- package/es/components/viewer3d/viewer3d.js +196 -202
- package/es/constants.js +349 -358
- package/es/index.js +8 -22
- package/es/models.js +177 -184
- package/es/plugins/SVGLoader.js +48 -53
- package/es/plugins/autosave.js +3 -9
- package/es/plugins/console-debugger.js +5 -12
- package/es/plugins/export.js +8 -32
- package/es/plugins/keyboard.js +29 -35
- package/es/reducers/areas-reducer.js +7 -13
- package/es/reducers/export.js +24 -96
- package/es/reducers/groups-reducer.js +31 -37
- package/es/reducers/holes-reducer.js +43 -49
- package/es/reducers/items-reducer.js +106 -112
- package/es/reducers/lines-reducer.js +28 -34
- package/es/reducers/project-reducer.js +105 -111
- package/es/reducers/reducer.js +16 -23
- package/es/reducers/scene-reducer.js +15 -21
- package/es/reducers/user-reducer.js +5 -11
- package/es/reducers/vertices-reducer.js +11 -17
- package/es/reducers/viewer2d-reducer.js +18 -24
- package/es/reducers/viewer3d-reducer.js +16 -22
- package/es/shared-style.js +10 -16
- package/es/styles/export.js +3 -11
- package/es/translator/en.js +1 -7
- package/es/translator/it.js +1 -7
- package/es/translator/ru.js +1 -7
- package/es/translator/translator.js +13 -19
- package/es/utils/browser.js +2 -9
- package/es/utils/convert-units-lite.js +1 -7
- package/es/utils/email-validator.js +1 -7
- package/es/utils/export.js +15 -46
- package/es/utils/geometry.js +181 -278
- package/es/utils/get-edges-of-subgraphs.js +2 -9
- package/es/utils/graph-cycles.js +8 -11
- package/es/utils/graph-inner-cycles.js +10 -18
- package/es/utils/graph.js +9 -17
- package/es/utils/helper.js +39 -63
- package/es/utils/history.js +8 -15
- package/es/utils/id-broker.js +8 -15
- package/es/utils/logger.js +1 -7
- package/es/utils/math.js +5 -12
- package/es/utils/molding.js +119 -144
- package/es/utils/name-generator.js +7 -13
- package/es/utils/objects-utils.js +7 -19
- package/es/utils/phone-validator.js +1 -7
- package/es/utils/process-black-list.js +3 -10
- package/es/utils/react-if.js +6 -12
- package/es/utils/snap-scene.js +27 -34
- package/es/utils/snap.js +45 -59
- package/es/utils/summarizeCart.js +1 -7
- package/es/utils/threeCSG.es6.js +13 -22
- package/es/version.js +1 -7
- package/lib/index.js +7 -13
- package/package.json +1 -1
|
@@ -1,32 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.addEdgesToMesh = addEdgesToMesh;
|
|
9
|
-
exports.loadTexture = loadTexture;
|
|
10
|
-
exports.render2DItem = render2DItem;
|
|
11
|
-
exports.render3DApplianceItem = render3DApplianceItem;
|
|
12
|
-
exports.render3DItem = render3DItem;
|
|
13
|
-
exports.render3DLightingItem = render3DLightingItem;
|
|
14
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
15
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
16
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
var _convertUnitsLite = require("../../utils/convert-units-lite");
|
|
18
|
-
var _immutable = require("immutable");
|
|
19
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
20
|
-
var Three = _interopRequireWildcard(require("three"));
|
|
21
|
-
var SceneCreator = _interopRequireWildcard(require("../../components/viewer3d/scene-creator"));
|
|
22
|
-
var _constants = require("../../constants");
|
|
23
|
-
var _models = require("../../models");
|
|
24
|
-
var GeomUtils = _interopRequireWildcard(require("./geom-utils"));
|
|
25
|
-
var _loadObj = require("./load-obj");
|
|
26
|
-
var _helper = require("../../utils/helper");
|
|
27
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
|
|
1
|
+
import _typeof from "@babel/runtime/helpers/typeof";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
28
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; }
|
|
29
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (
|
|
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
|
+
|
|
30
17
|
// env Map ///////////////
|
|
31
18
|
var paramsCounter = {
|
|
32
19
|
envMap: 'HDR',
|
|
@@ -56,9 +43,9 @@ var paramsModel = {
|
|
|
56
43
|
var cachedObject = {}; // cached Object for quickly load-3d
|
|
57
44
|
|
|
58
45
|
// render 2d function//////
|
|
59
|
-
function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, shape_svg) {
|
|
60
|
-
var _useState =
|
|
61
|
-
_useState2 = (
|
|
46
|
+
export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, shape_svg) {
|
|
47
|
+
var _useState = useState(false),
|
|
48
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
62
49
|
hover = _useState2[0],
|
|
63
50
|
setHover = _useState2[1];
|
|
64
51
|
var x = element.x,
|
|
@@ -101,24 +88,24 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
101
88
|
length: tempDepth.get('_length'),
|
|
102
89
|
unit: tempDepth.get('_unit')
|
|
103
90
|
};
|
|
104
|
-
var originalWidth =
|
|
105
|
-
var originalDepth =
|
|
106
|
-
var newWidth =
|
|
107
|
-
var newDepth =
|
|
108
|
-
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);
|
|
109
96
|
var angle = element.rotation + 90;
|
|
110
97
|
var textRotation = 0;
|
|
111
98
|
if (Math.sin(angle * Math.PI / 180) < 0) {
|
|
112
99
|
textRotation = 180;
|
|
113
100
|
}
|
|
114
101
|
var color = '#eee';
|
|
115
|
-
if (layoutpos ==
|
|
102
|
+
if (layoutpos == BASE_CABINET_LAYOUTPOS) {
|
|
116
103
|
color = '#3f8db3';
|
|
117
104
|
}
|
|
118
|
-
if (layoutpos ==
|
|
105
|
+
if (layoutpos == TALL_CABINET_LAYOUTPOS) {
|
|
119
106
|
color = '#93b3be';
|
|
120
107
|
}
|
|
121
|
-
if (layoutpos ==
|
|
108
|
+
if (layoutpos == WALL_CABINET_LAYOUTPOS) {
|
|
122
109
|
color = '#48b08dcc';
|
|
123
110
|
}
|
|
124
111
|
var splitStr = [];
|
|
@@ -132,7 +119,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
132
119
|
if (objSKU.length !== 0) {
|
|
133
120
|
var dcId,
|
|
134
121
|
doorStyle = element.doorStyle;
|
|
135
|
-
if (doorStyle instanceof
|
|
122
|
+
if (doorStyle instanceof Map) {
|
|
136
123
|
dcId = doorStyle.get('id');
|
|
137
124
|
} else {
|
|
138
125
|
dcId = doorStyle.id;
|
|
@@ -151,7 +138,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
151
138
|
}
|
|
152
139
|
splitStr.push(type.slice(lineCount * rowCount));
|
|
153
140
|
splitStr.forEach(function (el, key) {
|
|
154
|
-
txtContent.push(/*#__PURE__*/
|
|
141
|
+
txtContent.push(/*#__PURE__*/React.createElement("text", {
|
|
155
142
|
key: 'text' + key,
|
|
156
143
|
x: "0",
|
|
157
144
|
y: newDepth / 2 - 12,
|
|
@@ -195,12 +182,12 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
195
182
|
// } else {
|
|
196
183
|
// }
|
|
197
184
|
svg_url = shape_svg.url;
|
|
198
|
-
svg_width =
|
|
199
|
-
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);
|
|
200
187
|
}
|
|
201
188
|
var padding_width = padding * newWidth / svg_width;
|
|
202
189
|
var padding_depth = padding * newDepth / svg_depth;
|
|
203
|
-
rendered = /*#__PURE__*/
|
|
190
|
+
rendered = /*#__PURE__*/React.createElement("g", {
|
|
204
191
|
onMouseOver: function onMouseOver(event) {
|
|
205
192
|
setHover(true);
|
|
206
193
|
},
|
|
@@ -208,11 +195,11 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
208
195
|
setHover(false);
|
|
209
196
|
},
|
|
210
197
|
transform: "translate(".concat(x, ",").concat(y, ")")
|
|
211
|
-
}, /*#__PURE__*/
|
|
198
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
212
199
|
transform: "rotate(".concat(rotation, ")")
|
|
213
|
-
}, /*#__PURE__*/
|
|
200
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
214
201
|
transform: "translate(".concat(-newWidth / 2 - padding_width, ",").concat(-newDepth / 2 - padding_depth, ")")
|
|
215
|
-
}, /*#__PURE__*/
|
|
202
|
+
}, /*#__PURE__*/React.createElement("image", {
|
|
216
203
|
preserveAspectRatio: "none",
|
|
217
204
|
style: {
|
|
218
205
|
pointerEvents: 'none'
|
|
@@ -223,7 +210,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
223
210
|
transform: "scale(1, -1)",
|
|
224
211
|
x: "0",
|
|
225
212
|
y: "".concat(-newDepth - 2 * padding_depth)
|
|
226
|
-
}), /*#__PURE__*/
|
|
213
|
+
}), /*#__PURE__*/React.createElement("rect", {
|
|
227
214
|
x: "".concat(padding_width),
|
|
228
215
|
y: "".concat(padding_depth),
|
|
229
216
|
width: "".concat(newWidth),
|
|
@@ -236,14 +223,14 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
236
223
|
opacity: 0.7,
|
|
237
224
|
postion: 'relative'
|
|
238
225
|
},
|
|
239
|
-
fill:
|
|
240
|
-
stroke:
|
|
226
|
+
fill: STATUS_WARNING_LIGHT_COLOR,
|
|
227
|
+
stroke: STATUS_WARNING_COLOR,
|
|
241
228
|
strokeWidth: "2px"
|
|
242
|
-
}), /*#__PURE__*/
|
|
229
|
+
}), /*#__PURE__*/React.createElement("g", {
|
|
243
230
|
transform: "translate(".concat(padding_width, ",").concat(padding_depth, ")")
|
|
244
231
|
}, txtContent))));
|
|
245
232
|
} else {
|
|
246
|
-
rendered = /*#__PURE__*/
|
|
233
|
+
rendered = /*#__PURE__*/React.createElement("g", {
|
|
247
234
|
onMouseOver: function onMouseOver(event) {
|
|
248
235
|
setHover(true);
|
|
249
236
|
},
|
|
@@ -251,22 +238,22 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
251
238
|
setHover(false);
|
|
252
239
|
},
|
|
253
240
|
transform: "translate(".concat(x, ",").concat(y, ")")
|
|
254
|
-
}, /*#__PURE__*/
|
|
241
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
255
242
|
transform: "rotate(".concat(rotation, ")")
|
|
256
|
-
}, /*#__PURE__*/
|
|
243
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
257
244
|
transform: "translate(".concat(-newWidth / 2, ",").concat(-newDepth / 2, ")")
|
|
258
|
-
}, newDepth > 15 ? [/*#__PURE__*/
|
|
245
|
+
}, newDepth > 15 ? [/*#__PURE__*/React.createElement("rect", {
|
|
259
246
|
key: "base",
|
|
260
247
|
x: "0",
|
|
261
248
|
y: "12",
|
|
262
249
|
width: newWidth,
|
|
263
250
|
height: newDepth - 12,
|
|
264
251
|
style: style
|
|
265
|
-
}), /*#__PURE__*/
|
|
252
|
+
}), /*#__PURE__*/React.createElement("polygon", {
|
|
266
253
|
key: "door",
|
|
267
254
|
style: style,
|
|
268
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")
|
|
269
|
-
})] : /*#__PURE__*/
|
|
256
|
+
})] : /*#__PURE__*/React.createElement("rect", {
|
|
270
257
|
key: "base",
|
|
271
258
|
x: "0",
|
|
272
259
|
y: "0",
|
|
@@ -279,7 +266,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
279
266
|
}
|
|
280
267
|
// end of render 2d function /////////////////////////
|
|
281
268
|
|
|
282
|
-
function loadTexture(url) {
|
|
269
|
+
export function loadTexture(url) {
|
|
283
270
|
var texture = new Three.TextureLoader().load(url);
|
|
284
271
|
texture.colorSpace = Three.SRGBColorSpace;
|
|
285
272
|
texture.wrapS = Three.MirroredRepeatWrapping;
|
|
@@ -324,10 +311,10 @@ var assignUVs = function assignUVs(geometry) {
|
|
|
324
311
|
* @param sizeinfo Dimesion of the item
|
|
325
312
|
* @param structure_json Structure of the item such as place holders and meshes, etc
|
|
326
313
|
*/
|
|
327
|
-
function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner) {
|
|
314
|
+
export function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner) {
|
|
328
315
|
var mode = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
329
|
-
if (element.doorStyle.constructor !==
|
|
330
|
-
element = element.set('doorStyle',
|
|
316
|
+
if (element.doorStyle.constructor !== Map) {
|
|
317
|
+
element = element.set('doorStyle', fromJS(element.doorStyle));
|
|
331
318
|
}
|
|
332
319
|
if (element.doorStyle.toJS().handle_gltf !== '') {
|
|
333
320
|
// Check element has doorHandle
|
|
@@ -349,9 +336,9 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
349
336
|
length: sizeinfo.height,
|
|
350
337
|
unit: 'in'
|
|
351
338
|
};
|
|
352
|
-
var newWidth =
|
|
353
|
-
var newDepth =
|
|
354
|
-
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');
|
|
355
342
|
var mainName = ''; // to get name structure//
|
|
356
343
|
if (element.properties.get('width')) newWidth = element.getIn(['properties', 'width', '_length']);
|
|
357
344
|
if (element.properties.get('depth')) newDepth = element.getIn(['properties', 'depth', '_length']);
|
|
@@ -369,7 +356,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
369
356
|
counterTop.uri = layer.toJS().counterTop.uri;
|
|
370
357
|
}
|
|
371
358
|
if ('name' in element.doorStyle) {
|
|
372
|
-
doorStyles = new
|
|
359
|
+
doorStyles = new Map(element.doorStyle.doorStyles);
|
|
373
360
|
color = element.doorStyle.color;
|
|
374
361
|
glossness = element.doorStyle.glossness;
|
|
375
362
|
handleMaterial.metalness = element.doorStyle.metalness;
|
|
@@ -412,7 +399,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
412
399
|
var object1 = object;
|
|
413
400
|
var newAltitude = element.properties.get('altitude').get('_length');
|
|
414
401
|
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
415
|
-
newAltitude =
|
|
402
|
+
newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
|
|
416
403
|
var _element = element.toJS();
|
|
417
404
|
if (!_element.doorStyle.doorStyles.is_euro_cds) {
|
|
418
405
|
object1.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
|
|
@@ -550,7 +537,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
550
537
|
transparent: true,
|
|
551
538
|
opacity: 0.4
|
|
552
539
|
}));
|
|
553
|
-
var _color = new Three.Color(
|
|
540
|
+
var _color = new Three.Color(SHADE_DARK_PURPLE_COLOR).convertLinearToSRGB();
|
|
554
541
|
var vLine = new Three.Line(vLineGeom, new Three.LineBasicMaterial({
|
|
555
542
|
color: _color
|
|
556
543
|
}));
|
|
@@ -632,7 +619,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
632
619
|
SceneCreator.updateDoorHandleMesh(element, object1, true);
|
|
633
620
|
}
|
|
634
621
|
object1.traverse(function (obj) {
|
|
635
|
-
if (obj.type ===
|
|
622
|
+
if (obj.type === OBJTYPE_MESH) {
|
|
636
623
|
var name = obj.name;
|
|
637
624
|
if (name.match(/_door_.*_glass_/)) {
|
|
638
625
|
var material = new Three.MeshPhysicalMaterial({
|
|
@@ -687,10 +674,10 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
687
674
|
if (isDoor) {
|
|
688
675
|
var offsetData = object1.userData.door_animate_offset[obj.name];
|
|
689
676
|
// Open Door
|
|
690
|
-
|
|
677
|
+
animateDoor(offsetData, obj, open_doors, element.toJS(), is_corner, 'Opened2D');
|
|
691
678
|
} else {
|
|
692
679
|
// Open Drawer
|
|
693
|
-
|
|
680
|
+
translateDrawer(element.toJS(), obj, open_doors, 'Opened2D');
|
|
694
681
|
}
|
|
695
682
|
}
|
|
696
683
|
}
|
|
@@ -762,7 +749,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
762
749
|
_url = structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())];
|
|
763
750
|
}
|
|
764
751
|
}
|
|
765
|
-
if ((
|
|
752
|
+
if (_typeof(_url) == Array) _url = _url[0];
|
|
766
753
|
var uData = _url.split('/');
|
|
767
754
|
uData = uData[uData.length - 1];
|
|
768
755
|
uData = uData.slice(0, -5);
|
|
@@ -807,7 +794,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
807
794
|
} else {
|
|
808
795
|
structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = null;
|
|
809
796
|
}
|
|
810
|
-
return
|
|
797
|
+
return loadGLTF(loadUrl).then(function (object) {
|
|
811
798
|
if (normalMap !== '') {
|
|
812
799
|
var normalUrl = normalMap.split('.')[0] + '-normal.' + normalMap.split('.')[1];
|
|
813
800
|
var t = loadTexture(normalMap);
|
|
@@ -820,7 +807,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
820
807
|
mat2.normalMap = _m;
|
|
821
808
|
// mat2.envMap = textureCube;
|
|
822
809
|
for (var _j3 = 0; _j3 < object.children.length; _j3++) {
|
|
823
|
-
if (object.children[_j3].type ===
|
|
810
|
+
if (object.children[_j3].type === OBJTYPE_MESH) {
|
|
824
811
|
object.children[_j3].material = mat2;
|
|
825
812
|
object.children[_j3].receiveShadow = true;
|
|
826
813
|
}
|
|
@@ -852,12 +839,12 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
852
839
|
}
|
|
853
840
|
// mat2.envMap = textureCube;
|
|
854
841
|
for (var _j4 = 0; _j4 < object.children.length; _j4++) {
|
|
855
|
-
if (object.children[_j4].type ===
|
|
842
|
+
if (object.children[_j4].type === OBJTYPE_MESH) {
|
|
856
843
|
object.children[_j4].material = _mat;
|
|
857
844
|
object.children[_j4].receiveShadow = true;
|
|
858
845
|
object.children[_j4].castShadow = true;
|
|
859
846
|
!object.children[_j4].name.includes('handle') && addEdgesToMesh(object.children[_j4]);
|
|
860
|
-
} 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) {
|
|
861
848
|
object.children[_j4].traverse(function (prim) {
|
|
862
849
|
prim.material = _mat;
|
|
863
850
|
prim.receiveShadow = true;
|
|
@@ -871,7 +858,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
871
858
|
});
|
|
872
859
|
// mat2.envMap = textureCube;
|
|
873
860
|
for (var _j5 = 0; _j5 < object.children.length; _j5++) {
|
|
874
|
-
if (object.children[_j5].type ===
|
|
861
|
+
if (object.children[_j5].type === OBJTYPE_MESH) {
|
|
875
862
|
object.children[_j5].material = _mat2;
|
|
876
863
|
object.children[_j5].receiveShadow = true;
|
|
877
864
|
}
|
|
@@ -895,7 +882,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
895
882
|
if (placeholder.includes('drawer_door') && placeholder.includes('_handle')) {
|
|
896
883
|
tmp.rotateZ(Math.PI / 2);
|
|
897
884
|
}
|
|
898
|
-
if (placeholder.includes('_handle') && tmp.children[0].type ===
|
|
885
|
+
if (placeholder.includes('_handle') && tmp.children[0].type === OBJTYPE_MESH) {
|
|
899
886
|
// NOTE: change metalness of handle
|
|
900
887
|
tmp.children[0].material.metalness = 1;
|
|
901
888
|
// handleMaterial.metalness || 0.2;
|
|
@@ -916,7 +903,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
916
903
|
});
|
|
917
904
|
}
|
|
918
905
|
};
|
|
919
|
-
return
|
|
906
|
+
return loadGLTF(structure['base']).then(function (object) {
|
|
920
907
|
object.name = 'MainObject';
|
|
921
908
|
object.receiveShadow = true;
|
|
922
909
|
objGroup = object;
|
|
@@ -993,7 +980,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
993
980
|
addEdgesToMesh(object.children[j]);
|
|
994
981
|
} else if (object.children[j].name.includes('_interior_')) {
|
|
995
982
|
object.children[j].material = mat4;
|
|
996
|
-
} else if (object.children[j].type ===
|
|
983
|
+
} else if (object.children[j].type === OBJTYPE_MESH) {
|
|
997
984
|
object.children[j].material = mat2;
|
|
998
985
|
object.children[j].receiveShadow = true;
|
|
999
986
|
object.children[j].castShadow = true;
|
|
@@ -1009,7 +996,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
1009
996
|
}
|
|
1010
997
|
|
|
1011
998
|
// render 3d appliance function ////////////////////////////////
|
|
1012
|
-
function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json) {
|
|
999
|
+
export function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json) {
|
|
1013
1000
|
var mode = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
|
1014
1001
|
var structure = structure_json;
|
|
1015
1002
|
var applianceMaterial = element.applianceMaterial;
|
|
@@ -1017,16 +1004,16 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1017
1004
|
var onLoadItem = function onLoadItem(object) {
|
|
1018
1005
|
var newAltitude = element.properties.get('altitude').get('_length');
|
|
1019
1006
|
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
1020
|
-
newAltitude =
|
|
1007
|
+
newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
|
|
1021
1008
|
var newWidth = element.properties.get('width').get('_length');
|
|
1022
1009
|
var newWidthUnit = element.properties.get('width').get('_unit') || 'in';
|
|
1023
|
-
newWidth =
|
|
1010
|
+
newWidth = convert(newWidth).from(newWidthUnit).to('in');
|
|
1024
1011
|
var newHeight = element.properties.get('height').get('_length');
|
|
1025
1012
|
var newHeightUnit = element.properties.get('height').get('_unit') || 'in';
|
|
1026
|
-
newHeight =
|
|
1013
|
+
newHeight = convert(newHeight).from(newHeightUnit).to('in');
|
|
1027
1014
|
var newDepth = element.properties.get('depth').get('_length');
|
|
1028
1015
|
var newDepthUnit = element.properties.get('depth').get('_unit') || 'in';
|
|
1029
|
-
newDepth =
|
|
1016
|
+
newDepth = convert(newDepth).from(newDepthUnit).to('in');
|
|
1030
1017
|
object.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
|
|
1031
1018
|
// Normalize the origin of the object
|
|
1032
1019
|
var boundingBox = new Three.Box3().setFromObject(object);
|
|
@@ -1037,7 +1024,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1037
1024
|
object.position.z -= center[2];
|
|
1038
1025
|
object.position.y += newAltitude;
|
|
1039
1026
|
object.traverse(function (obj) {
|
|
1040
|
-
if (obj.type ===
|
|
1027
|
+
if (obj.type === OBJTYPE_MESH) {
|
|
1041
1028
|
var name = obj.name;
|
|
1042
1029
|
var texture,
|
|
1043
1030
|
textureLoader = new Three.TextureLoader();
|
|
@@ -1149,7 +1136,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1149
1136
|
transparent: true,
|
|
1150
1137
|
opacity: 0.4
|
|
1151
1138
|
}));
|
|
1152
|
-
var color = new Three.Color(
|
|
1139
|
+
var color = new Three.Color(ARROW_COLOR).convertLinearToSRGB();
|
|
1153
1140
|
var vLine = new Three.Line(vLineGeom, new Three.LineBasicMaterial({
|
|
1154
1141
|
color: color
|
|
1155
1142
|
}));
|
|
@@ -1249,7 +1236,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1249
1236
|
|
|
1250
1237
|
// load base to start //
|
|
1251
1238
|
// return loadGLTF(dirName + structure["base"])
|
|
1252
|
-
return
|
|
1239
|
+
return loadGLTF(structure['base']).then(function (object) {
|
|
1253
1240
|
// let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
|
|
1254
1241
|
// let texture = loadTexture(textureURL);
|
|
1255
1242
|
// texture.wrapS = Three.MirroredRepeatWrapping;
|
|
@@ -1265,7 +1252,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1265
1252
|
// mat2.envMap = textureCube;
|
|
1266
1253
|
object.material = mat2;
|
|
1267
1254
|
for (var j = 0; j < object.children.length; j++) {
|
|
1268
|
-
if (object.children[j].type ===
|
|
1255
|
+
if (object.children[j].type === OBJTYPE_MESH) {
|
|
1269
1256
|
object.children[j].material = mat2;
|
|
1270
1257
|
object.children[j].receiveShadow = true;
|
|
1271
1258
|
object.children[j].castShadow = true; // change
|
|
@@ -1280,7 +1267,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1280
1267
|
});
|
|
1281
1268
|
}
|
|
1282
1269
|
// render 3d appliance function ////////////////////////////////
|
|
1283
|
-
function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
1270
|
+
export function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
1284
1271
|
var mode = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
|
1285
1272
|
var structure = structure_json;
|
|
1286
1273
|
var onLoadItem = function onLoadItem(object) {
|
|
@@ -1296,12 +1283,12 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1296
1283
|
length: sizeinfo.height,
|
|
1297
1284
|
unit: 'in'
|
|
1298
1285
|
};
|
|
1299
|
-
var newWidth =
|
|
1300
|
-
var newDepth =
|
|
1301
|
-
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');
|
|
1302
1289
|
var newAltitude = element.properties.get('altitude').get('_length');
|
|
1303
1290
|
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
1304
|
-
newAltitude =
|
|
1291
|
+
newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
|
|
1305
1292
|
|
|
1306
1293
|
//object.scale.set(newWidth, newHeight, newDepth);
|
|
1307
1294
|
object.scale.set(100, 100, 100);
|
|
@@ -1381,7 +1368,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1381
1368
|
transparent: true,
|
|
1382
1369
|
opacity: 0.4
|
|
1383
1370
|
}));
|
|
1384
|
-
var color = new Three.Color(
|
|
1371
|
+
var color = new Three.Color(ARROW_COLOR).convertLinearToSRGB();
|
|
1385
1372
|
var vLine = new Three.Line(vLineGeom, new Three.LineBasicMaterial({
|
|
1386
1373
|
color: color
|
|
1387
1374
|
}));
|
|
@@ -1487,7 +1474,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1487
1474
|
|
|
1488
1475
|
// load base to start //
|
|
1489
1476
|
// return loadGLTF(dirName + structure["base"])
|
|
1490
|
-
return
|
|
1477
|
+
return loadGLTF(structure['base']).then(function (object) {
|
|
1491
1478
|
// let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
|
|
1492
1479
|
// let texture = loadTexture(textureURL);
|
|
1493
1480
|
// texture.wrapS = Three.MirroredRepeatWrapping;
|
|
@@ -1502,7 +1489,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1502
1489
|
// mat2.envMap = textureCube;
|
|
1503
1490
|
object.material = mat2;
|
|
1504
1491
|
for (var j = 0; j < object.children.length; j++) {
|
|
1505
|
-
if (object.children[j].type ===
|
|
1492
|
+
if (object.children[j].type === OBJTYPE_MESH) {
|
|
1506
1493
|
object.children[j].material = mat2;
|
|
1507
1494
|
object.children[j].receiveShadow = true;
|
|
1508
1495
|
}
|
|
@@ -1515,7 +1502,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1515
1502
|
return _loadGLTFs3(0);
|
|
1516
1503
|
});
|
|
1517
1504
|
}
|
|
1518
|
-
function addEdgesToMesh(inChild) {
|
|
1505
|
+
export function addEdgesToMesh(inChild) {
|
|
1519
1506
|
var boxEdge = new Three.EdgesGeometry(inChild.geometry, 10);
|
|
1520
1507
|
var boxEdgeMaterial = new Three.LineBasicMaterial({
|
|
1521
1508
|
color: 0x000000,
|
|
@@ -1,26 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var
|
|
10
|
-
var _MTLLoader = require("three/examples/jsm/loaders/MTLLoader.js");
|
|
11
|
-
var _OBJLoader = require("three/examples/jsm/loaders/OBJLoader.js");
|
|
12
|
-
var _GLTFLoader = require("three/examples/jsm/loaders/GLTFLoader.js");
|
|
13
|
-
var _DRACOLoader = require("three/examples/jsm/loaders/DRACOLoader.js");
|
|
14
|
-
var _constants = require("../../constants");
|
|
15
|
-
function loadObjWithMaterial(mtlFile, objFile, imgPath) {
|
|
16
|
-
var manager = new _three.LoadingManager();
|
|
17
|
-
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);
|
|
18
10
|
// mtlLoader.setPath(imgPath);
|
|
19
11
|
var url = mtlFile;
|
|
20
12
|
return new Promise(function (resolve, reject) {
|
|
21
13
|
mtlLoader.load(url, function (materials) {
|
|
22
14
|
materials.preload();
|
|
23
|
-
var objLoader = new
|
|
15
|
+
var objLoader = new OBJLoader();
|
|
24
16
|
objLoader.setMaterials(materials);
|
|
25
17
|
objLoader.load(objFile, function (object) {
|
|
26
18
|
return resolve(object);
|
|
@@ -28,12 +20,12 @@ function loadObjWithMaterial(mtlFile, objFile, imgPath) {
|
|
|
28
20
|
});
|
|
29
21
|
});
|
|
30
22
|
}
|
|
31
|
-
function loadGLTF(url) {
|
|
23
|
+
export function loadGLTF(url) {
|
|
32
24
|
if (url == undefined) {
|
|
33
25
|
return Promise.reject('No url is passed');
|
|
34
26
|
}
|
|
35
|
-
var baseURL =
|
|
36
|
-
var manager = new
|
|
27
|
+
var baseURL = LoaderUtils.extractUrlBase(url);
|
|
28
|
+
var manager = new LoadingManager();
|
|
37
29
|
|
|
38
30
|
// Intercept and override relative URLs.
|
|
39
31
|
manager.setURLModifier(function (url, path) {
|
|
@@ -50,9 +42,9 @@ function loadGLTF(url) {
|
|
|
50
42
|
// }
|
|
51
43
|
return (path || '') + url;
|
|
52
44
|
});
|
|
53
|
-
var loader = new
|
|
45
|
+
var loader = new GLTFLoader(manager);
|
|
54
46
|
loader.setCrossOrigin('anonymous');
|
|
55
|
-
var dracoLoader = new
|
|
47
|
+
var dracoLoader = new DRACOLoader();
|
|
56
48
|
dracoLoader.setDecoderPath('/assets/draco/');
|
|
57
49
|
loader.setDRACOLoader(dracoLoader);
|
|
58
50
|
return new Promise(function (resolve, reject) {
|
|
@@ -70,15 +62,15 @@ function loadGLTF(url) {
|
|
|
70
62
|
});
|
|
71
63
|
});
|
|
72
64
|
}
|
|
73
|
-
function scaleObject(object, defaultSizeArray, scaleSizeArray) {
|
|
74
|
-
var boundingBox = new
|
|
75
|
-
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();
|
|
76
68
|
for (var i = 0; i < 3; i++) {
|
|
77
69
|
scaleSizeArray[i] -= defaultSizeArray[i];
|
|
78
70
|
defaultSizeArray[i] /= initialSizeArray[i];
|
|
79
71
|
}
|
|
80
72
|
object.children.forEach(function (child) {
|
|
81
|
-
if (child.type ==
|
|
73
|
+
if (child.type == OBJTYPE_MESH && child.geometry instanceof BufferGeometry) {
|
|
82
74
|
var position = child.geometry.attributes.position;
|
|
83
75
|
var new_pos = position.array.map(function (v, i, a) {
|
|
84
76
|
var j = i % 3;
|
|
@@ -89,7 +81,7 @@ function scaleObject(object, defaultSizeArray, scaleSizeArray) {
|
|
|
89
81
|
}
|
|
90
82
|
return v;
|
|
91
83
|
});
|
|
92
|
-
var new_geom = child.geometry.clone().setAttribute('position', new
|
|
84
|
+
var new_geom = child.geometry.clone().setAttribute('position', new BufferAttribute(new_pos, 3));
|
|
93
85
|
new_geom.computeBoundingBox();
|
|
94
86
|
new_geom.computeBoundingSphere();
|
|
95
87
|
child.geometry.dispose();
|
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = exports.MTLLoader = void 0;
|
|
7
1
|
/**
|
|
8
2
|
* Loads a Wavefront .mtl file specifying materials
|
|
9
3
|
*
|
|
@@ -12,7 +6,7 @@ exports["default"] = exports.MTLLoader = void 0;
|
|
|
12
6
|
|
|
13
7
|
var THREE = window.THREE;
|
|
14
8
|
var MTLLoader;
|
|
15
|
-
|
|
9
|
+
MTLLoader = function MTLLoader(manager) {
|
|
16
10
|
this.manager = manager !== undefined ? manager : THREE.DefaultLoadingManager;
|
|
17
11
|
};
|
|
18
12
|
Object.assign(MTLLoader.prototype, THREE.EventDispatcher.prototype, {
|
|
@@ -360,4 +354,5 @@ MTLLoader.MaterialCreator.prototype = {
|
|
|
360
354
|
return texture;
|
|
361
355
|
}
|
|
362
356
|
};
|
|
363
|
-
|
|
357
|
+
export default MTLLoader;
|
|
358
|
+
export { MTLLoader };
|
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports["default"] = exports.OBJLoader = void 0;
|
|
7
1
|
/**
|
|
8
2
|
* @author mrdoob / http://mrdoob.com/
|
|
9
3
|
*/
|
|
10
4
|
var THREE = window.THREE;
|
|
11
5
|
var OBJLoader;
|
|
12
|
-
|
|
6
|
+
OBJLoader = function () {
|
|
13
7
|
// o object_name | g group_name
|
|
14
8
|
var object_pattern = /^[og]\s*(.+)?/;
|
|
15
9
|
// mtllib file_reference
|
|
@@ -479,4 +473,5 @@ exports.OBJLoader = OBJLoader = function () {
|
|
|
479
473
|
};
|
|
480
474
|
return OBJLoader;
|
|
481
475
|
}();
|
|
482
|
-
|
|
476
|
+
export default OBJLoader;
|
|
477
|
+
export { OBJLoader };
|