kitchen-simulator 1.1.1-test.70 → 1.1.1-test.71
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 -8
- package/es/AppContext.js +3 -8
- package/es/KitchenConfigurator.js +70 -77
- package/es/KitchenConfiguratorApp.js +98 -105
- package/es/actions/area-actions.js +5 -10
- package/es/actions/export.js +12 -27
- package/es/actions/groups-actions.js +27 -43
- package/es/actions/holes-actions.js +34 -53
- package/es/actions/items-actions.js +94 -143
- package/es/actions/lines-actions.js +21 -34
- package/es/actions/project-actions.js +94 -143
- package/es/actions/scene-actions.js +11 -19
- package/es/actions/vertices-actions.js +7 -13
- package/es/actions/viewer2d-actions.js +21 -34
- package/es/actions/viewer3d-actions.js +9 -16
- package/es/catalog/areas/area/planner-element.js +2 -7
- package/es/catalog/catalog.js +15 -19
- package/es/catalog/factories/area-factory-3d.js +22 -29
- package/es/catalog/factories/area-factory.js +11 -18
- package/es/catalog/factories/export.js +6 -12
- package/es/catalog/factories/wall-factory-3d.js +31 -39
- package/es/catalog/factories/wall-factory.js +21 -29
- package/es/catalog/holes/door-closet/planner-element.js +15 -22
- package/es/catalog/holes/door-double/planner-element.js +15 -22
- package/es/catalog/holes/door-exterior/planner-element.js +16 -23
- package/es/catalog/holes/door-interior/planner-element.js +16 -23
- package/es/catalog/holes/door-panic/planner-element.js +7 -14
- package/es/catalog/holes/door-panic-double/planner-element.js +15 -22
- package/es/catalog/holes/door-sliding/planner-element.js +16 -23
- package/es/catalog/holes/doorway-framed/planner-element.js +11 -18
- package/es/catalog/holes/doorway-frameless/planner-element.js +7 -14
- package/es/catalog/holes/export.js +13 -31
- package/es/catalog/holes/window-clear/planner-element.js +10 -17
- package/es/catalog/holes/window-cross/planner-element.js +10 -17
- package/es/catalog/holes/window-double-hung/planner-element.js +10 -17
- package/es/catalog/holes/window-vertical/planner-element.js +10 -17
- package/es/catalog/lines/wall/planner-element.js +2 -7
- package/es/catalog/molding/molding-dcm/planner-element.js +5 -12
- package/es/catalog/molding/molding-fbm/planner-element.js +5 -12
- package/es/catalog/molding/molding-lrm/planner-element.js +5 -12
- package/es/catalog/properties/export.js +20 -33
- package/es/catalog/properties/property-checkbox.js +24 -29
- package/es/catalog/properties/property-color.js +16 -21
- package/es/catalog/properties/property-enum.js +24 -29
- package/es/catalog/properties/property-hidden.js +9 -14
- package/es/catalog/properties/property-lenght-measure.js +38 -43
- package/es/catalog/properties/property-length-measure.js +36 -41
- package/es/catalog/properties/property-length-measure_hole.js +38 -43
- package/es/catalog/properties/property-number.js +17 -22
- package/es/catalog/properties/property-read-only.js +16 -21
- package/es/catalog/properties/property-string.js +16 -21
- package/es/catalog/properties/property-toggle.js +16 -21
- package/es/catalog/properties/shared-property-style.js +1 -5
- package/es/catalog/utils/FuseUtils.js +8 -13
- package/es/catalog/utils/exporter.js +8 -13
- package/es/catalog/utils/geom-utils.js +13 -27
- package/es/catalog/utils/item-loader.js +84 -95
- package/es/catalog/utils/load-obj.js +20 -26
- package/es/catalog/utils/mtl-loader.js +3 -6
- package/es/catalog/utils/obj-loader.js +3 -6
- package/es/class/FuseUtils.js +8 -13
- package/es/class/area.js +22 -26
- package/es/class/export.js +23 -38
- package/es/class/group.js +53 -57
- package/es/class/guide.js +15 -19
- package/es/class/hole.js +83 -87
- package/es/class/item.js +141 -145
- package/es/class/layer.js +59 -63
- package/es/class/line.js +135 -141
- package/es/class/project.js +90 -96
- package/es/class/vertex.js +29 -33
- package/es/components/content.js +19 -26
- package/es/components/disclaimer/disclaimer.js +10 -16
- package/es/components/export.js +8 -15
- package/es/components/style/button.js +23 -29
- package/es/components/style/cancel-button.js +7 -12
- package/es/components/style/content-container.js +9 -14
- package/es/components/style/content-title.js +11 -18
- package/es/components/style/delete-button.js +8 -15
- package/es/components/style/export.js +30 -48
- package/es/components/style/form-block.js +8 -13
- package/es/components/style/form-color-input.js +7 -12
- package/es/components/style/form-label.js +8 -13
- package/es/components/style/form-number-input.js +41 -47
- package/es/components/style/form-number-input_2.js +36 -42
- package/es/components/style/form-select.js +17 -22
- package/es/components/style/form-slider.js +10 -15
- package/es/components/style/form-submit-button.js +8 -15
- package/es/components/style/form-text-input.js +26 -32
- package/es/components/viewer2d/area.js +17 -22
- package/es/components/viewer2d/export.js +30 -48
- package/es/components/viewer2d/grids/grid-horizontal-streak.js +10 -15
- package/es/components/viewer2d/grids/grid-streak.js +10 -15
- package/es/components/viewer2d/grids/grid-vertical-streak.js +10 -15
- package/es/components/viewer2d/grids/grids.js +10 -17
- package/es/components/viewer2d/group.js +15 -22
- package/es/components/viewer2d/item.js +61 -68
- package/es/components/viewer2d/layer.js +23 -28
- package/es/components/viewer2d/line.js +101 -109
- package/es/components/viewer2d/ruler.js +22 -27
- package/es/components/viewer2d/rulerDist.js +21 -26
- package/es/components/viewer2d/rulerX.js +39 -45
- package/es/components/viewer2d/rulerY.js +37 -43
- package/es/components/viewer2d/scene.js +30 -36
- package/es/components/viewer2d/snap.js +13 -20
- package/es/components/viewer2d/state.js +18 -25
- package/es/components/viewer2d/utils.js +24 -35
- package/es/components/viewer2d/vertex.js +8 -15
- package/es/components/viewer2d/viewer2d.js +153 -161
- package/es/components/viewer3d/camera-controls-module/camera-controls.module.js +17 -21
- package/es/components/viewer3d/dcm.js +1 -5
- package/es/components/viewer3d/fbm.js +1 -5
- package/es/components/viewer3d/front3D.js +12 -19
- package/es/components/viewer3d/grid-creator.js +8 -15
- package/es/components/viewer3d/grids/grid-horizontal-streak.js +6 -12
- package/es/components/viewer3d/grids/grid-streak.js +5 -11
- package/es/components/viewer3d/grids/grid-vertical-streak.js +6 -12
- package/es/components/viewer3d/libs/first-person-controls.js +2 -7
- package/es/components/viewer3d/libs/helvetiker_regular.typeface.js +1 -5
- package/es/components/viewer3d/libs/mtl-loader.js +1 -5
- package/es/components/viewer3d/libs/obj-loader.js +1 -5
- package/es/components/viewer3d/libs/orbit-controls.js +2 -6
- package/es/components/viewer3d/libs/pointer-lock-controls.js +2 -6
- package/es/components/viewer3d/lrm.js +1 -5
- package/es/components/viewer3d/model.js +1 -5
- package/es/components/viewer3d/pointer-lock-navigation.js +3 -8
- package/es/components/viewer3d/ruler-utils/itemRect.js +18 -23
- package/es/components/viewer3d/ruler-utils/layer3D.js +59 -64
- package/es/components/viewer3d/ruler-utils/ruler3D.js +39 -44
- package/es/components/viewer3d/ruler-utils/scene3D.js +9 -15
- package/es/components/viewer3d/ruler-utils/state3D.js +4 -9
- package/es/components/viewer3d/scene-creator.js +191 -224
- package/es/components/viewer3d/three-memory-cleaner.js +3 -10
- package/es/components/viewer3d/viewer3d-first-person.js +40 -44
- package/es/components/viewer3d/viewer3d.js +196 -200
- package/es/constants.js +349 -356
- package/es/index.js +7 -13
- package/es/models.js +177 -182
- package/es/plugins/SVGLoader.js +48 -51
- package/es/plugins/autosave.js +3 -7
- package/es/plugins/console-debugger.js +5 -10
- package/es/plugins/export.js +8 -15
- package/es/plugins/keyboard.js +29 -33
- package/es/reducers/areas-reducer.js +7 -11
- package/es/reducers/export.js +24 -39
- package/es/reducers/groups-reducer.js +31 -35
- package/es/reducers/holes-reducer.js +43 -47
- package/es/reducers/items-reducer.js +106 -110
- package/es/reducers/lines-reducer.js +28 -32
- package/es/reducers/project-reducer.js +105 -109
- package/es/reducers/reducer.js +16 -21
- package/es/reducers/scene-reducer.js +15 -19
- package/es/reducers/user-reducer.js +5 -9
- package/es/reducers/vertices-reducer.js +11 -15
- package/es/reducers/viewer2d-reducer.js +18 -22
- package/es/reducers/viewer3d-reducer.js +16 -20
- package/es/shared-style.js +10 -14
- package/es/styles/export.js +3 -9
- package/es/translator/en.js +1 -5
- package/es/translator/it.js +1 -5
- package/es/translator/ru.js +1 -5
- package/es/translator/translator.js +13 -17
- package/es/utils/browser.js +2 -7
- package/es/utils/convert-units-lite.js +1 -5
- package/es/utils/email-validator.js +1 -5
- package/es/utils/export.js +15 -32
- package/es/utils/geometry.js +181 -276
- package/es/utils/get-edges-of-subgraphs.js +2 -7
- package/es/utils/graph-cycles.js +8 -9
- package/es/utils/graph-inner-cycles.js +10 -16
- package/es/utils/graph.js +9 -15
- package/es/utils/helper.js +39 -61
- package/es/utils/history.js +8 -13
- package/es/utils/id-broker.js +8 -13
- package/es/utils/logger.js +1 -5
- package/es/utils/math.js +5 -10
- package/es/utils/molding.js +119 -142
- package/es/utils/name-generator.js +7 -11
- package/es/utils/objects-utils.js +7 -17
- package/es/utils/phone-validator.js +1 -5
- package/es/utils/process-black-list.js +3 -8
- package/es/utils/react-if.js +6 -10
- package/es/utils/snap-scene.js +27 -32
- package/es/utils/snap.js +45 -57
- package/es/utils/summarizeCart.js +1 -5
- package/es/utils/threeCSG.es6.js +13 -20
- package/es/version.js +1 -5
- package/package.json +1 -1
|
@@ -1,20 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
exports.__esModule = true;
|
|
5
|
-
exports.addShape = addShape;
|
|
6
|
-
exports.baseBox3FromObject = baseBox3FromObject;
|
|
7
|
-
exports.baseBoxHelper = baseBoxHelper;
|
|
8
|
-
exports.controlGeom = controlGeom;
|
|
9
|
-
exports.createRotShape = createRotShape;
|
|
10
|
-
exports.emptyBoxHolder = emptyBoxHolder;
|
|
11
|
-
exports.makeMBoxfromObject = makeMBoxfromObject;
|
|
12
|
-
exports.rotGeoms = rotGeoms;
|
|
13
|
-
exports.upwardsGeom = upwardsGeom;
|
|
14
|
-
var Three = _interopRequireWildcard(require("three"));
|
|
15
|
-
var _constants = require("../../constants");
|
|
16
|
-
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" != _typeof(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 _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
17
|
-
function controlGeom() {
|
|
1
|
+
import * as Three from 'three';
|
|
2
|
+
import { OBJTYPE_MESH } from "../../constants";
|
|
3
|
+
export function controlGeom() {
|
|
18
4
|
var vertices = new Float32Array([0, 0.02, 0.55, -0.08, 0, 0.5, -0.05, 0, 0.5, -0.05, 0, -0.5, -0.08, 0, -0.5, 0, 0.02, -0.55, 0.08, 0, -0.5, 0.05, 0, -0.5, 0.05, 0, 0.5, 0.08, 0, 0.5, 0, 0.02, 0.55, -0.08, 0.04, 0.5, -0.05, 0.04, 0.5, -0.05, 0.04, -0.5, -0.08, 0.04, -0.5, 0, 0.02, -0.55, 0.08, 0.04, -0.5, 0.05, 0.04, -0.5, 0.05, 0.04, 0.5, 0.08, 0.04, 0.5, 0, 0.02, 0.55]);
|
|
19
5
|
var indices = new Uint16Array([0, 1, 9, 4, 5, 6, 2, 3, 8, 3, 7, 8, 10, 11, 19, 14, 15, 16, 12, 13, 18, 13, 17, 18, 10, 1, 11, 10, 9, 19, 1, 2, 11, 2, 12, 11, 8, 9, 18, 9, 18, 19, 12, 2, 3, 12, 3, 13, 17, 7, 8, 17, 8, 18, 5, 4, 14, 15, 6, 16]);
|
|
20
6
|
var geometry = new Three.BufferGeometry();
|
|
@@ -22,7 +8,7 @@ function controlGeom() {
|
|
|
22
8
|
geometry.setIndex(new Three.BufferAttribute(indices, 1));
|
|
23
9
|
return geometry;
|
|
24
10
|
}
|
|
25
|
-
function upwardsGeom() {
|
|
11
|
+
export function upwardsGeom() {
|
|
26
12
|
var vertices = new Float32Array([0.05, 0, 0.05, 0.05, 0.3, 0.05, 0.07, 0.3, 0.05, 0, 0.4, 0.05, -0.07, 0.3, 0.05, -0.05, 0.3, 0.05, -0.05, 0, 0.05, 0.05, 0, 0.05, 0.05, 0, -0.05, 0.05, 0.3, -0.05, 0.07, 0.3, -0.05, 0, 0.4, -0.05, -0.07, 0.3, -0.05, -0.05, 0.3, -0.05, -0.05, 0, -0.05, 0.05, 0, -0.05]);
|
|
27
13
|
var indices = new Uint16Array([0, 1, 5, 0, 5, 6, 2, 3, 4, 0, 1, 8, 1, 8, 9, 1, 2, 9, 2, 9, 10, 2, 3, 10, 3, 10, 11, 3, 4, 11, 4, 11, 12, 4, 5, 12, 4, 12, 13, 5, 6, 13, 6, 13, 14, 6, 7, 14, 7, 14, 15, 8, 9, 13, 8, 13, 14, 10, 11, 12]);
|
|
28
14
|
var geometry = new Three.BufferGeometry();
|
|
@@ -30,7 +16,7 @@ function upwardsGeom() {
|
|
|
30
16
|
geometry.setIndex(new Three.BufferAttribute(indices, 1));
|
|
31
17
|
return geometry;
|
|
32
18
|
}
|
|
33
|
-
function createRotShape(radius) {
|
|
19
|
+
export function createRotShape(radius) {
|
|
34
20
|
var rotShape = new Three.Shape();
|
|
35
21
|
rotShape.moveTo(Math.cos(-60 / 180 * Math.PI) * (radius - 0.05), Math.sin(-60 / 180 * Math.PI) * (radius - 0.05));
|
|
36
22
|
for (var i = -55; i <= 60; i += 5) {
|
|
@@ -59,7 +45,7 @@ function createRotShape(radius) {
|
|
|
59
45
|
rotShape.lineTo(Math.cos(-60 / 180 * Math.PI) * (radius - 0.05), Math.sin(-60 / 180 * Math.PI) * (radius - 0.05));
|
|
60
46
|
return rotShape;
|
|
61
47
|
}
|
|
62
|
-
function rotGeoms(radius) {
|
|
48
|
+
export function rotGeoms(radius) {
|
|
63
49
|
if (!Number.isFinite(radius)) radius = 1;
|
|
64
50
|
var rotShape = createRotShape(radius);
|
|
65
51
|
var rotFill = new Three.ShapeGeometry(rotShape);
|
|
@@ -71,7 +57,7 @@ function rotGeoms(radius) {
|
|
|
71
57
|
rotStroke: rotStroke
|
|
72
58
|
};
|
|
73
59
|
}
|
|
74
|
-
function addShape(shape, extrudeSettings, color, x, y, z, rx, ry, rz, s) {
|
|
60
|
+
export function addShape(shape, extrudeSettings, color, x, y, z, rx, ry, rz, s) {
|
|
75
61
|
// flat shape
|
|
76
62
|
var geometry = geometry = new Three.ExtrudeGeometry(shape, extrudeSettings);
|
|
77
63
|
var mesh = new Three.Mesh(geometry, new Three.MeshPhongMaterial({
|
|
@@ -83,7 +69,7 @@ function addShape(shape, extrudeSettings, color, x, y, z, rx, ry, rz, s) {
|
|
|
83
69
|
mesh.scale.set(s, s, s);
|
|
84
70
|
return mesh;
|
|
85
71
|
}
|
|
86
|
-
function makeMBoxfromObject(props_Object) {
|
|
72
|
+
export function makeMBoxfromObject(props_Object) {
|
|
87
73
|
var _props_Object$childre;
|
|
88
74
|
var mBoxColor = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0x99c3fb;
|
|
89
75
|
if (!props_Object) {
|
|
@@ -162,10 +148,10 @@ function makeMBoxfromObject(props_Object) {
|
|
|
162
148
|
|
|
163
149
|
// }
|
|
164
150
|
|
|
165
|
-
function baseBoxHelper(object, color) {
|
|
151
|
+
export function baseBoxHelper(object, color) {
|
|
166
152
|
var tempobj = [];
|
|
167
153
|
for (var j = object.children.length - 1; j >= 0; j--) {
|
|
168
|
-
if (object.children[j].type !==
|
|
154
|
+
if (object.children[j].type !== OBJTYPE_MESH) {
|
|
169
155
|
tempobj.push(object.children[j]);
|
|
170
156
|
object.remove(object.children[j]);
|
|
171
157
|
}
|
|
@@ -176,10 +162,10 @@ function baseBoxHelper(object, color) {
|
|
|
176
162
|
});
|
|
177
163
|
return boxHelper;
|
|
178
164
|
}
|
|
179
|
-
function baseBox3FromObject(object) {
|
|
165
|
+
export function baseBox3FromObject(object) {
|
|
180
166
|
var tempobj = [];
|
|
181
167
|
for (var j = object.children.length - 1; j >= 0; j--) {
|
|
182
|
-
if (object.children[j].type !==
|
|
168
|
+
if (object.children[j].type !== OBJTYPE_MESH || object.children[j].name.includes('_countertop')) {
|
|
183
169
|
tempobj.push(object.children[j]);
|
|
184
170
|
object.remove(object.children[j]);
|
|
185
171
|
}
|
|
@@ -190,7 +176,7 @@ function baseBox3FromObject(object) {
|
|
|
190
176
|
});
|
|
191
177
|
return box3;
|
|
192
178
|
}
|
|
193
|
-
function emptyBoxHolder(newWidth, newHeight, newDepth) {
|
|
179
|
+
export function emptyBoxHolder(newWidth, newHeight, newDepth) {
|
|
194
180
|
var scale = 2.54 / 100;
|
|
195
181
|
var geometry = new Three.BoxGeometry(newWidth * scale, newHeight * scale, newDepth * scale);
|
|
196
182
|
var material = new Three.MeshBasicMaterial({
|
|
@@ -1,30 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.addEdgesToMesh = addEdgesToMesh;
|
|
7
|
-
exports.loadTexture = loadTexture;
|
|
8
|
-
exports.render2DItem = render2DItem;
|
|
9
|
-
exports.render3DApplianceItem = render3DApplianceItem;
|
|
10
|
-
exports.render3DItem = render3DItem;
|
|
11
|
-
exports.render3DLightingItem = render3DLightingItem;
|
|
12
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/typeof"));
|
|
13
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/defineProperty"));
|
|
14
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
|
|
15
|
-
var _convertUnitsLite = require("../../utils/convert-units-lite");
|
|
16
|
-
var _immutable = require("immutable");
|
|
17
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
18
|
-
var Three = _interopRequireWildcard(require("three"));
|
|
19
|
-
var SceneCreator = _interopRequireWildcard(require("../../components/viewer3d/scene-creator"));
|
|
20
|
-
var _constants = require("../../constants");
|
|
21
|
-
var _models = require("../../models");
|
|
22
|
-
var GeomUtils = _interopRequireWildcard(require("./geom-utils"));
|
|
23
|
-
var _loadObj = require("./load-obj");
|
|
24
|
-
var _helper = require("../../utils/helper");
|
|
25
|
-
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/esm/typeof";
|
|
2
|
+
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
26
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; }
|
|
27
|
-
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
|
+
|
|
28
17
|
// env Map ///////////////
|
|
29
18
|
var paramsCounter = {
|
|
30
19
|
envMap: 'HDR',
|
|
@@ -54,9 +43,9 @@ var paramsModel = {
|
|
|
54
43
|
var cachedObject = {}; // cached Object for quickly load-3d
|
|
55
44
|
|
|
56
45
|
// render 2d function//////
|
|
57
|
-
function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, shape_svg) {
|
|
58
|
-
var _useState =
|
|
59
|
-
_useState2 = (
|
|
46
|
+
export function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, shape_svg) {
|
|
47
|
+
var _useState = useState(false),
|
|
48
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
60
49
|
hover = _useState2[0],
|
|
61
50
|
setHover = _useState2[1];
|
|
62
51
|
var x = element.x,
|
|
@@ -99,24 +88,24 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
99
88
|
length: tempDepth.get('_length'),
|
|
100
89
|
unit: tempDepth.get('_unit')
|
|
101
90
|
};
|
|
102
|
-
var originalWidth =
|
|
103
|
-
var originalDepth =
|
|
104
|
-
var newWidth =
|
|
105
|
-
var newDepth =
|
|
106
|
-
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);
|
|
107
96
|
var angle = element.rotation + 90;
|
|
108
97
|
var textRotation = 0;
|
|
109
98
|
if (Math.sin(angle * Math.PI / 180) < 0) {
|
|
110
99
|
textRotation = 180;
|
|
111
100
|
}
|
|
112
101
|
var color = '#eee';
|
|
113
|
-
if (layoutpos ==
|
|
102
|
+
if (layoutpos == BASE_CABINET_LAYOUTPOS) {
|
|
114
103
|
color = '#3f8db3';
|
|
115
104
|
}
|
|
116
|
-
if (layoutpos ==
|
|
105
|
+
if (layoutpos == TALL_CABINET_LAYOUTPOS) {
|
|
117
106
|
color = '#93b3be';
|
|
118
107
|
}
|
|
119
|
-
if (layoutpos ==
|
|
108
|
+
if (layoutpos == WALL_CABINET_LAYOUTPOS) {
|
|
120
109
|
color = '#48b08dcc';
|
|
121
110
|
}
|
|
122
111
|
var splitStr = [];
|
|
@@ -130,7 +119,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
130
119
|
if (objSKU.length !== 0) {
|
|
131
120
|
var dcId,
|
|
132
121
|
doorStyle = element.doorStyle;
|
|
133
|
-
if (doorStyle instanceof
|
|
122
|
+
if (doorStyle instanceof Map) {
|
|
134
123
|
dcId = doorStyle.get('id');
|
|
135
124
|
} else {
|
|
136
125
|
dcId = doorStyle.id;
|
|
@@ -149,7 +138,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
149
138
|
}
|
|
150
139
|
splitStr.push(type.slice(lineCount * rowCount));
|
|
151
140
|
splitStr.forEach(function (el, key) {
|
|
152
|
-
txtContent.push(/*#__PURE__*/
|
|
141
|
+
txtContent.push(/*#__PURE__*/React.createElement("text", {
|
|
153
142
|
key: 'text' + key,
|
|
154
143
|
x: "0",
|
|
155
144
|
y: newDepth / 2 - 12,
|
|
@@ -193,12 +182,12 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
193
182
|
// } else {
|
|
194
183
|
// }
|
|
195
184
|
svg_url = shape_svg.url;
|
|
196
|
-
svg_width =
|
|
197
|
-
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);
|
|
198
187
|
}
|
|
199
188
|
var padding_width = padding * newWidth / svg_width;
|
|
200
189
|
var padding_depth = padding * newDepth / svg_depth;
|
|
201
|
-
rendered = /*#__PURE__*/
|
|
190
|
+
rendered = /*#__PURE__*/React.createElement("g", {
|
|
202
191
|
onMouseOver: function onMouseOver(event) {
|
|
203
192
|
setHover(true);
|
|
204
193
|
},
|
|
@@ -206,11 +195,11 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
206
195
|
setHover(false);
|
|
207
196
|
},
|
|
208
197
|
transform: "translate(".concat(x, ",").concat(y, ")")
|
|
209
|
-
}, /*#__PURE__*/
|
|
198
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
210
199
|
transform: "rotate(".concat(rotation, ")")
|
|
211
|
-
}, /*#__PURE__*/
|
|
200
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
212
201
|
transform: "translate(".concat(-newWidth / 2 - padding_width, ",").concat(-newDepth / 2 - padding_depth, ")")
|
|
213
|
-
}, /*#__PURE__*/
|
|
202
|
+
}, /*#__PURE__*/React.createElement("image", {
|
|
214
203
|
preserveAspectRatio: "none",
|
|
215
204
|
style: {
|
|
216
205
|
pointerEvents: 'none'
|
|
@@ -221,7 +210,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
221
210
|
transform: "scale(1, -1)",
|
|
222
211
|
x: "0",
|
|
223
212
|
y: "".concat(-newDepth - 2 * padding_depth)
|
|
224
|
-
}), /*#__PURE__*/
|
|
213
|
+
}), /*#__PURE__*/React.createElement("rect", {
|
|
225
214
|
x: "".concat(padding_width),
|
|
226
215
|
y: "".concat(padding_depth),
|
|
227
216
|
width: "".concat(newWidth),
|
|
@@ -234,14 +223,14 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
234
223
|
opacity: 0.7,
|
|
235
224
|
postion: 'relative'
|
|
236
225
|
},
|
|
237
|
-
fill:
|
|
238
|
-
stroke:
|
|
226
|
+
fill: STATUS_WARNING_LIGHT_COLOR,
|
|
227
|
+
stroke: STATUS_WARNING_COLOR,
|
|
239
228
|
strokeWidth: "2px"
|
|
240
|
-
}), /*#__PURE__*/
|
|
229
|
+
}), /*#__PURE__*/React.createElement("g", {
|
|
241
230
|
transform: "translate(".concat(padding_width, ",").concat(padding_depth, ")")
|
|
242
231
|
}, txtContent))));
|
|
243
232
|
} else {
|
|
244
|
-
rendered = /*#__PURE__*/
|
|
233
|
+
rendered = /*#__PURE__*/React.createElement("g", {
|
|
245
234
|
onMouseOver: function onMouseOver(event) {
|
|
246
235
|
setHover(true);
|
|
247
236
|
},
|
|
@@ -249,22 +238,22 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
249
238
|
setHover(false);
|
|
250
239
|
},
|
|
251
240
|
transform: "translate(".concat(x, ",").concat(y, ")")
|
|
252
|
-
}, /*#__PURE__*/
|
|
241
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
253
242
|
transform: "rotate(".concat(rotation, ")")
|
|
254
|
-
}, /*#__PURE__*/
|
|
243
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
255
244
|
transform: "translate(".concat(-newWidth / 2, ",").concat(-newDepth / 2, ")")
|
|
256
|
-
}, newDepth > 15 ? [/*#__PURE__*/
|
|
245
|
+
}, newDepth > 15 ? [/*#__PURE__*/React.createElement("rect", {
|
|
257
246
|
key: "base",
|
|
258
247
|
x: "0",
|
|
259
248
|
y: "12",
|
|
260
249
|
width: newWidth,
|
|
261
250
|
height: newDepth - 12,
|
|
262
251
|
style: style
|
|
263
|
-
}), /*#__PURE__*/
|
|
252
|
+
}), /*#__PURE__*/React.createElement("polygon", {
|
|
264
253
|
key: "door",
|
|
265
254
|
style: style,
|
|
266
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")
|
|
267
|
-
})] : /*#__PURE__*/
|
|
256
|
+
})] : /*#__PURE__*/React.createElement("rect", {
|
|
268
257
|
key: "base",
|
|
269
258
|
x: "0",
|
|
270
259
|
y: "0",
|
|
@@ -277,7 +266,7 @@ function render2DItem(element, layer, scene, sizeinfo, layoutpos, is_corner, sha
|
|
|
277
266
|
}
|
|
278
267
|
// end of render 2d function /////////////////////////
|
|
279
268
|
|
|
280
|
-
function loadTexture(url) {
|
|
269
|
+
export function loadTexture(url) {
|
|
281
270
|
var texture = new Three.TextureLoader().load(url);
|
|
282
271
|
texture.colorSpace = Three.SRGBColorSpace;
|
|
283
272
|
texture.wrapS = Three.MirroredRepeatWrapping;
|
|
@@ -322,10 +311,10 @@ var assignUVs = function assignUVs(geometry) {
|
|
|
322
311
|
* @param sizeinfo Dimesion of the item
|
|
323
312
|
* @param structure_json Structure of the item such as place holders and meshes, etc
|
|
324
313
|
*/
|
|
325
|
-
function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner) {
|
|
314
|
+
export function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner) {
|
|
326
315
|
var mode = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
327
|
-
if (element.doorStyle.constructor !==
|
|
328
|
-
element = element.set('doorStyle',
|
|
316
|
+
if (element.doorStyle.constructor !== Map) {
|
|
317
|
+
element = element.set('doorStyle', fromJS(element.doorStyle));
|
|
329
318
|
}
|
|
330
319
|
if (element.doorStyle.toJS().handle_gltf !== '') {
|
|
331
320
|
// Check element has doorHandle
|
|
@@ -347,9 +336,9 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
347
336
|
length: sizeinfo.height,
|
|
348
337
|
unit: 'in'
|
|
349
338
|
};
|
|
350
|
-
var newWidth =
|
|
351
|
-
var newDepth =
|
|
352
|
-
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');
|
|
353
342
|
var mainName = ''; // to get name structure//
|
|
354
343
|
if (element.properties.get('width')) newWidth = element.getIn(['properties', 'width', '_length']);
|
|
355
344
|
if (element.properties.get('depth')) newDepth = element.getIn(['properties', 'depth', '_length']);
|
|
@@ -367,7 +356,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
367
356
|
counterTop.uri = layer.toJS().counterTop.uri;
|
|
368
357
|
}
|
|
369
358
|
if ('name' in element.doorStyle) {
|
|
370
|
-
doorStyles = new
|
|
359
|
+
doorStyles = new Map(element.doorStyle.doorStyles);
|
|
371
360
|
color = element.doorStyle.color;
|
|
372
361
|
glossness = element.doorStyle.glossness;
|
|
373
362
|
handleMaterial.metalness = element.doorStyle.metalness;
|
|
@@ -410,7 +399,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
410
399
|
var object1 = object;
|
|
411
400
|
var newAltitude = element.properties.get('altitude').get('_length');
|
|
412
401
|
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
413
|
-
newAltitude =
|
|
402
|
+
newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
|
|
414
403
|
var _element = element.toJS();
|
|
415
404
|
if (!_element.doorStyle.doorStyles.is_euro_cds) {
|
|
416
405
|
object1.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
|
|
@@ -548,7 +537,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
548
537
|
transparent: true,
|
|
549
538
|
opacity: 0.4
|
|
550
539
|
}));
|
|
551
|
-
var _color = new Three.Color(
|
|
540
|
+
var _color = new Three.Color(SHADE_DARK_PURPLE_COLOR).convertLinearToSRGB();
|
|
552
541
|
var vLine = new Three.Line(vLineGeom, new Three.LineBasicMaterial({
|
|
553
542
|
color: _color
|
|
554
543
|
}));
|
|
@@ -630,7 +619,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
630
619
|
SceneCreator.updateDoorHandleMesh(element, object1, true);
|
|
631
620
|
}
|
|
632
621
|
object1.traverse(function (obj) {
|
|
633
|
-
if (obj.type ===
|
|
622
|
+
if (obj.type === OBJTYPE_MESH) {
|
|
634
623
|
var name = obj.name;
|
|
635
624
|
if (name.match(/_door_.*_glass_/)) {
|
|
636
625
|
var material = new Three.MeshPhysicalMaterial({
|
|
@@ -685,10 +674,10 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
685
674
|
if (isDoor) {
|
|
686
675
|
var offsetData = object1.userData.door_animate_offset[obj.name];
|
|
687
676
|
// Open Door
|
|
688
|
-
|
|
677
|
+
animateDoor(offsetData, obj, open_doors, element.toJS(), is_corner, 'Opened2D');
|
|
689
678
|
} else {
|
|
690
679
|
// Open Drawer
|
|
691
|
-
|
|
680
|
+
translateDrawer(element.toJS(), obj, open_doors, 'Opened2D');
|
|
692
681
|
}
|
|
693
682
|
}
|
|
694
683
|
}
|
|
@@ -760,7 +749,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
760
749
|
_url = structure[temp[k - 1] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())];
|
|
761
750
|
}
|
|
762
751
|
}
|
|
763
|
-
if ((
|
|
752
|
+
if (_typeof(_url) == Array) _url = _url[0];
|
|
764
753
|
var uData = _url.split('/');
|
|
765
754
|
uData = uData[uData.length - 1];
|
|
766
755
|
uData = uData.slice(0, -5);
|
|
@@ -805,7 +794,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
805
794
|
} else {
|
|
806
795
|
structure[keys[i] + '_doorStyle' + element.type + 'doorStyle' + JSON.stringify(doorStyles.toJS())] = null;
|
|
807
796
|
}
|
|
808
|
-
return
|
|
797
|
+
return loadGLTF(loadUrl).then(function (object) {
|
|
809
798
|
if (normalMap !== '') {
|
|
810
799
|
var normalUrl = normalMap.split('.')[0] + '-normal.' + normalMap.split('.')[1];
|
|
811
800
|
var t = loadTexture(normalMap);
|
|
@@ -818,7 +807,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
818
807
|
mat2.normalMap = _m;
|
|
819
808
|
// mat2.envMap = textureCube;
|
|
820
809
|
for (var _j3 = 0; _j3 < object.children.length; _j3++) {
|
|
821
|
-
if (object.children[_j3].type ===
|
|
810
|
+
if (object.children[_j3].type === OBJTYPE_MESH) {
|
|
822
811
|
object.children[_j3].material = mat2;
|
|
823
812
|
object.children[_j3].receiveShadow = true;
|
|
824
813
|
}
|
|
@@ -850,12 +839,12 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
850
839
|
}
|
|
851
840
|
// mat2.envMap = textureCube;
|
|
852
841
|
for (var _j4 = 0; _j4 < object.children.length; _j4++) {
|
|
853
|
-
if (object.children[_j4].type ===
|
|
842
|
+
if (object.children[_j4].type === OBJTYPE_MESH) {
|
|
854
843
|
object.children[_j4].material = _mat;
|
|
855
844
|
object.children[_j4].receiveShadow = true;
|
|
856
845
|
object.children[_j4].castShadow = true;
|
|
857
846
|
!object.children[_j4].name.includes('handle') && addEdgesToMesh(object.children[_j4]);
|
|
858
|
-
} 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) {
|
|
859
848
|
object.children[_j4].traverse(function (prim) {
|
|
860
849
|
prim.material = _mat;
|
|
861
850
|
prim.receiveShadow = true;
|
|
@@ -869,7 +858,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
869
858
|
});
|
|
870
859
|
// mat2.envMap = textureCube;
|
|
871
860
|
for (var _j5 = 0; _j5 < object.children.length; _j5++) {
|
|
872
|
-
if (object.children[_j5].type ===
|
|
861
|
+
if (object.children[_j5].type === OBJTYPE_MESH) {
|
|
873
862
|
object.children[_j5].material = _mat2;
|
|
874
863
|
object.children[_j5].receiveShadow = true;
|
|
875
864
|
}
|
|
@@ -893,7 +882,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
893
882
|
if (placeholder.includes('drawer_door') && placeholder.includes('_handle')) {
|
|
894
883
|
tmp.rotateZ(Math.PI / 2);
|
|
895
884
|
}
|
|
896
|
-
if (placeholder.includes('_handle') && tmp.children[0].type ===
|
|
885
|
+
if (placeholder.includes('_handle') && tmp.children[0].type === OBJTYPE_MESH) {
|
|
897
886
|
// NOTE: change metalness of handle
|
|
898
887
|
tmp.children[0].material.metalness = 1;
|
|
899
888
|
// handleMaterial.metalness || 0.2;
|
|
@@ -914,7 +903,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
914
903
|
});
|
|
915
904
|
}
|
|
916
905
|
};
|
|
917
|
-
return
|
|
906
|
+
return loadGLTF(structure['base']).then(function (object) {
|
|
918
907
|
object.name = 'MainObject';
|
|
919
908
|
object.receiveShadow = true;
|
|
920
909
|
objGroup = object;
|
|
@@ -991,7 +980,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
991
980
|
addEdgesToMesh(object.children[j]);
|
|
992
981
|
} else if (object.children[j].name.includes('_interior_')) {
|
|
993
982
|
object.children[j].material = mat4;
|
|
994
|
-
} else if (object.children[j].type ===
|
|
983
|
+
} else if (object.children[j].type === OBJTYPE_MESH) {
|
|
995
984
|
object.children[j].material = mat2;
|
|
996
985
|
object.children[j].receiveShadow = true;
|
|
997
986
|
object.children[j].castShadow = true;
|
|
@@ -1007,7 +996,7 @@ function render3DItem(element, layer, scene, sizeinfo, structure_json, is_corner
|
|
|
1007
996
|
}
|
|
1008
997
|
|
|
1009
998
|
// render 3d appliance function ////////////////////////////////
|
|
1010
|
-
function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json) {
|
|
999
|
+
export function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json) {
|
|
1011
1000
|
var mode = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
|
1012
1001
|
var structure = structure_json;
|
|
1013
1002
|
var applianceMaterial = element.applianceMaterial;
|
|
@@ -1015,16 +1004,16 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1015
1004
|
var onLoadItem = function onLoadItem(object) {
|
|
1016
1005
|
var newAltitude = element.properties.get('altitude').get('_length');
|
|
1017
1006
|
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
1018
|
-
newAltitude =
|
|
1007
|
+
newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
|
|
1019
1008
|
var newWidth = element.properties.get('width').get('_length');
|
|
1020
1009
|
var newWidthUnit = element.properties.get('width').get('_unit') || 'in';
|
|
1021
|
-
newWidth =
|
|
1010
|
+
newWidth = convert(newWidth).from(newWidthUnit).to('in');
|
|
1022
1011
|
var newHeight = element.properties.get('height').get('_length');
|
|
1023
1012
|
var newHeightUnit = element.properties.get('height').get('_unit') || 'in';
|
|
1024
|
-
newHeight =
|
|
1013
|
+
newHeight = convert(newHeight).from(newHeightUnit).to('in');
|
|
1025
1014
|
var newDepth = element.properties.get('depth').get('_length');
|
|
1026
1015
|
var newDepthUnit = element.properties.get('depth').get('_unit') || 'in';
|
|
1027
|
-
newDepth =
|
|
1016
|
+
newDepth = convert(newDepth).from(newDepthUnit).to('in');
|
|
1028
1017
|
object.scale.set(100 * newWidth / sizeinfo.width, 100 * newHeight / sizeinfo.height, 100 * newDepth / sizeinfo.depth);
|
|
1029
1018
|
// Normalize the origin of the object
|
|
1030
1019
|
var boundingBox = new Three.Box3().setFromObject(object);
|
|
@@ -1035,7 +1024,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1035
1024
|
object.position.z -= center[2];
|
|
1036
1025
|
object.position.y += newAltitude;
|
|
1037
1026
|
object.traverse(function (obj) {
|
|
1038
|
-
if (obj.type ===
|
|
1027
|
+
if (obj.type === OBJTYPE_MESH) {
|
|
1039
1028
|
var name = obj.name;
|
|
1040
1029
|
var texture,
|
|
1041
1030
|
textureLoader = new Three.TextureLoader();
|
|
@@ -1147,7 +1136,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1147
1136
|
transparent: true,
|
|
1148
1137
|
opacity: 0.4
|
|
1149
1138
|
}));
|
|
1150
|
-
var color = new Three.Color(
|
|
1139
|
+
var color = new Three.Color(ARROW_COLOR).convertLinearToSRGB();
|
|
1151
1140
|
var vLine = new Three.Line(vLineGeom, new Three.LineBasicMaterial({
|
|
1152
1141
|
color: color
|
|
1153
1142
|
}));
|
|
@@ -1247,7 +1236,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1247
1236
|
|
|
1248
1237
|
// load base to start //
|
|
1249
1238
|
// return loadGLTF(dirName + structure["base"])
|
|
1250
|
-
return
|
|
1239
|
+
return loadGLTF(structure['base']).then(function (object) {
|
|
1251
1240
|
// let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
|
|
1252
1241
|
// let texture = loadTexture(textureURL);
|
|
1253
1242
|
// texture.wrapS = Three.MirroredRepeatWrapping;
|
|
@@ -1263,7 +1252,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1263
1252
|
// mat2.envMap = textureCube;
|
|
1264
1253
|
object.material = mat2;
|
|
1265
1254
|
for (var j = 0; j < object.children.length; j++) {
|
|
1266
|
-
if (object.children[j].type ===
|
|
1255
|
+
if (object.children[j].type === OBJTYPE_MESH) {
|
|
1267
1256
|
object.children[j].material = mat2;
|
|
1268
1257
|
object.children[j].receiveShadow = true;
|
|
1269
1258
|
object.children[j].castShadow = true; // change
|
|
@@ -1278,7 +1267,7 @@ function render3DApplianceItem(element, layer, scene, sizeinfo, structure_json)
|
|
|
1278
1267
|
});
|
|
1279
1268
|
}
|
|
1280
1269
|
// render 3d appliance function ////////////////////////////////
|
|
1281
|
-
function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
1270
|
+
export function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
1282
1271
|
var mode = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : null;
|
|
1283
1272
|
var structure = structure_json;
|
|
1284
1273
|
var onLoadItem = function onLoadItem(object) {
|
|
@@ -1294,12 +1283,12 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1294
1283
|
length: sizeinfo.height,
|
|
1295
1284
|
unit: 'in'
|
|
1296
1285
|
};
|
|
1297
|
-
var newWidth =
|
|
1298
|
-
var newDepth =
|
|
1299
|
-
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');
|
|
1300
1289
|
var newAltitude = element.properties.get('altitude').get('_length');
|
|
1301
1290
|
var newUnit = element.properties.get('altitude').get('_unit') || 'in';
|
|
1302
|
-
newAltitude =
|
|
1291
|
+
newAltitude = convert(newAltitude).from(newUnit).to(scene.unit);
|
|
1303
1292
|
|
|
1304
1293
|
//object.scale.set(newWidth, newHeight, newDepth);
|
|
1305
1294
|
object.scale.set(100, 100, 100);
|
|
@@ -1379,7 +1368,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1379
1368
|
transparent: true,
|
|
1380
1369
|
opacity: 0.4
|
|
1381
1370
|
}));
|
|
1382
|
-
var color = new Three.Color(
|
|
1371
|
+
var color = new Three.Color(ARROW_COLOR).convertLinearToSRGB();
|
|
1383
1372
|
var vLine = new Three.Line(vLineGeom, new Three.LineBasicMaterial({
|
|
1384
1373
|
color: color
|
|
1385
1374
|
}));
|
|
@@ -1485,7 +1474,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1485
1474
|
|
|
1486
1475
|
// load base to start //
|
|
1487
1476
|
// return loadGLTF(dirName + structure["base"])
|
|
1488
|
-
return
|
|
1477
|
+
return loadGLTF(structure['base']).then(function (object) {
|
|
1489
1478
|
// let textureURL = `${API_SERVER_URL}/uploads/assets/default/steel.jpg`;
|
|
1490
1479
|
// let texture = loadTexture(textureURL);
|
|
1491
1480
|
// texture.wrapS = Three.MirroredRepeatWrapping;
|
|
@@ -1500,7 +1489,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1500
1489
|
// mat2.envMap = textureCube;
|
|
1501
1490
|
object.material = mat2;
|
|
1502
1491
|
for (var j = 0; j < object.children.length; j++) {
|
|
1503
|
-
if (object.children[j].type ===
|
|
1492
|
+
if (object.children[j].type === OBJTYPE_MESH) {
|
|
1504
1493
|
object.children[j].material = mat2;
|
|
1505
1494
|
object.children[j].receiveShadow = true;
|
|
1506
1495
|
}
|
|
@@ -1513,7 +1502,7 @@ function render3DLightingItem(element, layer, scene, sizeinfo, structure_json) {
|
|
|
1513
1502
|
return _loadGLTFs3(0);
|
|
1514
1503
|
});
|
|
1515
1504
|
}
|
|
1516
|
-
function addEdgesToMesh(inChild) {
|
|
1505
|
+
export function addEdgesToMesh(inChild) {
|
|
1517
1506
|
var boxEdge = new Three.EdgesGeometry(inChild.geometry, 10);
|
|
1518
1507
|
var boxEdgeMaterial = new Three.LineBasicMaterial({
|
|
1519
1508
|
color: 0x000000,
|