kitchen-simulator 1.0.0-alin.9 → 1.0.0-clark.101
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/LiteKitchenConfigurator.js +17 -175
- package/es/LiteRenderer.js +29 -114
- package/es/actions/items-actions.js +11 -6
- package/es/actions/project-actions.js +2 -3
- package/es/assets/img/svg/logo.svg +11 -0
- package/es/assets/img/svg/logo_with_text.svg +25 -0
- package/es/catalog/areas/area/planner-element.js +10 -5
- package/es/catalog/catalog.js +1 -4
- package/es/catalog/factories/wall-factory.js +8 -8
- package/es/catalog/lines/wall/planner-element.js +18 -9
- package/es/catalog/utils/exporter.js +5 -1
- package/es/catalog/utils/item-loader.js +112 -31
- package/es/catalog/utils/mtl-loader.js +2 -2
- package/es/catalog/utils/obj-loader.js +2 -2
- package/es/class/item.js +111 -145
- package/es/class/line.js +27 -12
- package/es/class/project.js +9 -23
- package/es/components/content.js +10 -5
- package/es/components/viewer2d/grids/grid-streak.js +1 -1
- package/es/components/viewer2d/item.js +20 -81
- package/es/components/viewer2d/layer.js +1 -1
- package/es/components/viewer2d/line.js +334 -259
- package/es/components/viewer2d/ruler.js +15 -35
- package/es/components/viewer2d/rulerDist.js +18 -32
- package/es/components/viewer2d/viewer2d.js +123 -95
- package/es/components/viewer3d/libs/mtl-loader.js +2 -2
- package/es/components/viewer3d/libs/obj-loader.js +2 -2
- package/es/components/viewer3d/libs/orbit-controls.js +3 -4
- package/es/components/viewer3d/libs/pointer-lock-controls.js +6 -7
- package/es/components/viewer3d/viewer3d.js +91 -70
- package/es/constants.js +38 -3
- package/es/devLiteRenderer.js +165 -10
- package/es/index.js +52 -3
- package/es/models.js +7 -5
- package/es/reducers/items-reducer.js +8 -4
- package/es/reducers/project-reducer.js +1 -1
- package/es/shared-style.js +4 -4
- package/es/utils/get-edges-of-subgraphs.js +1 -1
- package/es/utils/graph-cycles.js +1 -1
- package/es/utils/graph.js +1 -1
- package/es/utils/helper.js +1 -1
- package/es/utils/isolate-event-handler.js +567 -46
- package/lib/LiteKitchenConfigurator.js +18 -176
- package/lib/LiteRenderer.js +29 -114
- package/lib/actions/items-actions.js +11 -5
- package/lib/actions/project-actions.js +2 -3
- package/lib/assets/img/svg/logo.svg +11 -0
- package/lib/assets/img/svg/logo_with_text.svg +25 -0
- package/lib/catalog/areas/area/planner-element.js +11 -5
- package/lib/catalog/catalog.js +1 -4
- package/lib/catalog/factories/wall-factory.js +8 -8
- package/lib/catalog/lines/wall/planner-element.js +19 -9
- package/lib/catalog/utils/exporter.js +5 -1
- package/lib/catalog/utils/item-loader.js +111 -31
- package/lib/catalog/utils/mtl-loader.js +9 -2
- package/lib/catalog/utils/obj-loader.js +10 -2
- package/lib/class/item.js +111 -145
- package/lib/class/line.js +27 -12
- package/lib/class/project.js +9 -23
- package/lib/components/content.js +10 -5
- package/lib/components/viewer2d/grids/grid-streak.js +1 -1
- package/lib/components/viewer2d/item.js +20 -81
- package/lib/components/viewer2d/layer.js +1 -1
- package/lib/components/viewer2d/line.js +334 -258
- package/lib/components/viewer2d/ruler.js +15 -35
- package/lib/components/viewer2d/rulerDist.js +18 -32
- package/lib/components/viewer2d/viewer2d.js +121 -93
- package/lib/components/viewer3d/libs/mtl-loader.js +9 -2
- package/lib/components/viewer3d/libs/obj-loader.js +9 -2
- package/lib/components/viewer3d/libs/orbit-controls.js +11 -5
- package/lib/components/viewer3d/libs/pointer-lock-controls.js +13 -7
- package/lib/components/viewer3d/viewer3d.js +90 -69
- package/lib/constants.js +42 -7
- package/lib/devLiteRenderer.js +164 -9
- package/lib/index.js +52 -3
- package/lib/models.js +7 -5
- package/lib/reducers/items-reducer.js +7 -3
- package/lib/reducers/project-reducer.js +1 -1
- package/lib/shared-style.js +4 -4
- package/lib/utils/get-edges-of-subgraphs.js +6 -1
- package/lib/utils/graph-cycles.js +7 -8
- package/lib/utils/graph.js +6 -1
- package/lib/utils/helper.js +2 -2
- package/lib/utils/isolate-event-handler.js +567 -45
- package/package.json +5 -9
|
@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import { convert } from "../../utils/convert-units-lite";
|
|
4
4
|
import IDBroker from "../../utils/id-broker";
|
|
5
5
|
import { LINE_THICKNESS, TEXT_COLOR_NEUTRAL_7 } from "../../constants";
|
|
6
|
+
import { STYLE_ROOM_SHAPE } from "./line";
|
|
6
7
|
var STYLE = {
|
|
7
8
|
stroke: TEXT_COLOR_NEUTRAL_7,
|
|
8
9
|
strokeWidth: '1px'
|
|
@@ -15,6 +16,7 @@ var STYLE_TEXT = {
|
|
|
15
16
|
textAnchor: 'middle',
|
|
16
17
|
fontSize: '12px',
|
|
17
18
|
pointerEvents: 'none',
|
|
19
|
+
fill: '#455A64',
|
|
18
20
|
//http://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting-using-css
|
|
19
21
|
WebkitTouchCallout: 'none' /* iOS Safari */,
|
|
20
22
|
WebkitUserSelect: 'none' /* Chrome/Safari/Opera */,
|
|
@@ -28,37 +30,9 @@ export default function Ruler(_ref) {
|
|
|
28
30
|
unit = _ref.unit,
|
|
29
31
|
rulerUnit = _ref.rulerUnit,
|
|
30
32
|
transform = _ref.transform,
|
|
31
|
-
|
|
32
|
-
var update = function update(lengthInput, unitInput, type) {
|
|
33
|
-
var newLength = toFixedFloat(lengthInput);
|
|
34
|
-
var merged = null;
|
|
35
|
-
if (type === 0) {
|
|
36
|
-
merged = value.merge({
|
|
37
|
-
_length: newLength,
|
|
38
|
-
length: convert(newLength).from(unitInput).to('cm')
|
|
39
|
-
});
|
|
40
|
-
} else {
|
|
41
|
-
merged = value.merge({
|
|
42
|
-
_length: convert(newLength).from(UNIT_INCH).to(unitInput),
|
|
43
|
-
_unit: unitInput
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
// if (hook) {
|
|
47
|
-
// return hook(merged, sourceElement, internalState, state).then(val => {
|
|
48
|
-
// return onUpdate(val);
|
|
49
|
-
// });
|
|
50
|
-
// }
|
|
51
|
-
// return onUpdate(merged);
|
|
52
|
-
};
|
|
53
|
-
// let _unit = "in";
|
|
54
|
-
// let distanceText = convert(length).from(unit).to(rulerUnit);
|
|
33
|
+
style = _ref.style;
|
|
55
34
|
var distanceText = convert(length).from(unit).to(rulerUnit).toFixed(0);
|
|
56
|
-
var
|
|
57
|
-
// let _ft_len = convert(_length).from('in').to('ft');
|
|
58
|
-
// let _ft_val = Math.floor(_ft_len); _ft_len -= _ft_val;
|
|
59
|
-
// let _in_val = convert(_ft_len).from('ft').to('in').toFixed(0);
|
|
60
|
-
// let distanceText = `${_ft_val}'${_in_val}"`;
|
|
61
|
-
var textLength = (distanceText.length + layer.unit.length) * 18;
|
|
35
|
+
var textLength = (distanceText.length + layer.unit.length) * 9;
|
|
62
36
|
return /*#__PURE__*/React.createElement("g", {
|
|
63
37
|
transform: transform
|
|
64
38
|
}, /*#__PURE__*/React.createElement("g", {
|
|
@@ -79,18 +53,24 @@ export default function Ruler(_ref) {
|
|
|
79
53
|
style: STYLE_TEXT,
|
|
80
54
|
fill: TEXT_COLOR_NEUTRAL_7
|
|
81
55
|
}, Math.round(convert(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/React.createElement("line", {
|
|
82
|
-
x1:
|
|
56
|
+
x1: style === STYLE_ROOM_SHAPE ? 0 : 4,
|
|
83
57
|
y1: "0",
|
|
84
58
|
x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2,
|
|
85
59
|
y2: "0",
|
|
86
|
-
style:
|
|
60
|
+
style: style
|
|
87
61
|
}), /*#__PURE__*/React.createElement("line", {
|
|
88
62
|
x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length,
|
|
89
63
|
y1: "0",
|
|
90
|
-
x2: length,
|
|
64
|
+
x2: style === STYLE_ROOM_SHAPE ? length : length - 4,
|
|
91
65
|
y2: "0",
|
|
92
|
-
style:
|
|
93
|
-
})
|
|
66
|
+
style: style
|
|
67
|
+
}), style !== STYLE_ROOM_SHAPE && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("polygon", {
|
|
68
|
+
points: "3, 0, 6.5, -2, 6.5, 2 ",
|
|
69
|
+
style: style
|
|
70
|
+
}), /*#__PURE__*/React.createElement("polygon", {
|
|
71
|
+
points: "".concat(length - 3, ", 0, ").concat(length - 6.5, ", 2, ").concat(length - 6.5, ", -2"),
|
|
72
|
+
style: style
|
|
73
|
+
})));
|
|
94
74
|
}
|
|
95
75
|
Ruler.propTypes = {
|
|
96
76
|
length: PropTypes.number.isRequired,
|
|
@@ -7,13 +7,15 @@ var ARROW_STYLE = {
|
|
|
7
7
|
strokeLinecap: 'round'
|
|
8
8
|
};
|
|
9
9
|
var STYLE = {
|
|
10
|
-
stroke: '
|
|
11
|
-
|
|
10
|
+
stroke: '#455A64',
|
|
11
|
+
fill: '#455A64',
|
|
12
|
+
strokeWidth: '1.5px'
|
|
12
13
|
};
|
|
13
14
|
var STYLE_TEXT = {
|
|
14
15
|
textAnchor: 'middle',
|
|
15
16
|
fontSize: '10px',
|
|
16
17
|
pointerEvents: 'none',
|
|
18
|
+
fill: '#455A64',
|
|
17
19
|
//http://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting-using-css
|
|
18
20
|
WebkitTouchCallout: 'none' /* iOS Safari */,
|
|
19
21
|
WebkitUserSelect: 'none' /* Chrome/Safari/Opera */,
|
|
@@ -75,32 +77,24 @@ export default function RulerDist(_ref) {
|
|
|
75
77
|
y: "0",
|
|
76
78
|
transform: "translate(".concat(length / 2, ",").concat(ay, ") scale(1, -1) rotate(").concat(textRotation, ")"),
|
|
77
79
|
style: STYLE_TEXT
|
|
78
|
-
}, Math.round(convert(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit)), /*#__PURE__*/React.createElement("
|
|
79
|
-
cx: "1",
|
|
80
|
-
cy: "0",
|
|
81
|
-
fill: "white",
|
|
82
|
-
r: "1.1",
|
|
83
|
-
stroke: "black",
|
|
84
|
-
strokeWidth: "0.6"
|
|
85
|
-
}), /*#__PURE__*/React.createElement("line", {
|
|
80
|
+
}, Math.round(convert(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/React.createElement("line", {
|
|
86
81
|
x1: "2",
|
|
87
82
|
y1: "0",
|
|
88
83
|
x2: (length - textLength) / 2 < 0 ? 0 : length,
|
|
89
84
|
y2: "0",
|
|
90
85
|
style: STYLE
|
|
86
|
+
}), /*#__PURE__*/React.createElement("polygon", {
|
|
87
|
+
points: "1, 0, 4.5, -2, 4.5, 2 ",
|
|
88
|
+
style: STYLE
|
|
91
89
|
}), /*#__PURE__*/React.createElement("line", {
|
|
92
90
|
x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length,
|
|
93
91
|
y1: "0",
|
|
94
92
|
x2: length,
|
|
95
93
|
y2: "0",
|
|
96
94
|
style: STYLE
|
|
97
|
-
}), /*#__PURE__*/React.createElement("
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
fill: "white",
|
|
101
|
-
r: "1.1",
|
|
102
|
-
stroke: "black",
|
|
103
|
-
strokeWidth: "0.6"
|
|
95
|
+
}), /*#__PURE__*/React.createElement("polygon", {
|
|
96
|
+
points: "".concat(length - 1, ", 0, ").concat(length - 4.5, ", 2, ").concat(length - 4.5, ", -2"),
|
|
97
|
+
style: STYLE
|
|
104
98
|
}));
|
|
105
99
|
} else {
|
|
106
100
|
return /*#__PURE__*/React.createElement("g", {
|
|
@@ -110,32 +104,24 @@ export default function RulerDist(_ref) {
|
|
|
110
104
|
y: "0",
|
|
111
105
|
transform: "translate(".concat(length / 2, ",").concat(ay, ") scale(1, -1) rotate(").concat(textRotation, ")"),
|
|
112
106
|
style: STYLE_TEXT
|
|
113
|
-
}, Math.round(convert(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit)), /*#__PURE__*/React.createElement("
|
|
114
|
-
cx: "1",
|
|
115
|
-
cy: "0",
|
|
116
|
-
fill: "white",
|
|
117
|
-
r: "1.1",
|
|
118
|
-
stroke: "black",
|
|
119
|
-
strokeWidth: "0.6"
|
|
120
|
-
}), /*#__PURE__*/React.createElement("line", {
|
|
107
|
+
}, Math.round(convert(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/React.createElement("line", {
|
|
121
108
|
x1: "2",
|
|
122
109
|
y1: "0",
|
|
123
110
|
x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2,
|
|
124
111
|
y2: "0",
|
|
125
112
|
style: STYLE
|
|
113
|
+
}), /*#__PURE__*/React.createElement("polygon", {
|
|
114
|
+
points: "1, 0, 4.5, -2, 4.5, 2 ",
|
|
115
|
+
style: STYLE
|
|
126
116
|
}), /*#__PURE__*/React.createElement("line", {
|
|
127
117
|
x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length,
|
|
128
118
|
y1: "0",
|
|
129
119
|
x2: length,
|
|
130
120
|
y2: "0",
|
|
131
121
|
style: STYLE
|
|
132
|
-
}), /*#__PURE__*/React.createElement("
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
fill: "white",
|
|
136
|
-
r: "1.1",
|
|
137
|
-
stroke: "black",
|
|
138
|
-
strokeWidth: "0.6"
|
|
122
|
+
}), /*#__PURE__*/React.createElement("polygon", {
|
|
123
|
+
points: "".concat(length - 1, ", 0, ").concat(length - 4.5, ", 2, ").concat(length - 4.5, ", -2"),
|
|
124
|
+
style: STYLE
|
|
139
125
|
}));
|
|
140
126
|
}
|
|
141
127
|
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
2
1
|
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
|
|
3
2
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
3
|
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
4
|
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
5
|
import React, { useEffect, useRef, useState } from 'react';
|
|
7
6
|
import PropTypes from 'prop-types';
|
|
8
|
-
import { ReactSVGPanZoom, TOOL_AUTO, TOOL_NONE, TOOL_PAN, TOOL_ZOOM_IN, TOOL_ZOOM_OUT
|
|
7
|
+
import { ReactSVGPanZoom, TOOL_AUTO, TOOL_NONE, TOOL_PAN, TOOL_ZOOM_IN, TOOL_ZOOM_OUT } from 'react-svg-pan-zoom';
|
|
9
8
|
import * as constants from "../../constants";
|
|
10
|
-
import { DECIMAL_PLACES_2, LINE_THICKNESS, MIN_ANGLE_DISALLOW_DRAW_WALL, MODE_ELEVATION_VIEW, MODE_IDLE, UNIT_ANGLE } from "../../constants";
|
|
9
|
+
import { DECIMAL_PLACES_2, LINE_THICKNESS, MIN_ANGLE_DISALLOW_DRAW_WALL, MODE_ELEVATION_VIEW, MODE_IDLE, UNIT_ANGLE, INTERNAL_EVENT_SELECT_ELEMENT, INTERNAL_EVENT_DRAG_ELEMENT, INTERNAL_EVENT_DRAW_ELEMENT, INTERNAL_EVENT_ROTATE_ELEMENT } from "../../constants";
|
|
11
10
|
import State from "./state";
|
|
12
11
|
import * as SharedStyle from "../../shared-style";
|
|
13
12
|
import { RulerX, RulerY } from "./export";
|
|
@@ -124,7 +123,8 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
124
123
|
width = _ref.width,
|
|
125
124
|
height = _ref.height,
|
|
126
125
|
setToolbar = _ref.setToolbar,
|
|
127
|
-
replaceCabinet = _ref.replaceCabinet
|
|
126
|
+
replaceCabinet = _ref.replaceCabinet,
|
|
127
|
+
onInternalEvent = _ref.onInternalEvent;
|
|
128
128
|
var viewer2DActions = _ref2.viewer2DActions,
|
|
129
129
|
linesActions = _ref2.linesActions,
|
|
130
130
|
holesActions = _ref2.holesActions,
|
|
@@ -391,6 +391,7 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
391
391
|
vertices[dragVertexId].y = y;
|
|
392
392
|
}
|
|
393
393
|
var absAngle, lineAngle;
|
|
394
|
+
var angles = [];
|
|
394
395
|
if (draggingLine.vertices[0] !== draggingLine.vertices[1]) {
|
|
395
396
|
if (isEmpty(relatedLines) && mode !== 'DRAGGING_LINE') {
|
|
396
397
|
endDrag.push(true);
|
|
@@ -409,6 +410,7 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
409
410
|
absAngle = Math.abs(lineAngle);
|
|
410
411
|
var tmpRelated = [];
|
|
411
412
|
GeometryUtils.getRelatedLines(tmpRelated, line, vertices, allLines, draggingLine.id);
|
|
413
|
+
angles.push(lineAngle);
|
|
412
414
|
for (var j = 0; j < tmpRelated.length; j++) {
|
|
413
415
|
var tmpAngle = Math.abs(GeometryUtils.angleBetweenTwoLines(tmpRelated[j], line, vertices));
|
|
414
416
|
if (tmpAngle < MIN_ANGLE_DISALLOW_DRAW_WALL || tmpAngle > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL) {
|
|
@@ -426,7 +428,6 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
426
428
|
vtx = x;
|
|
427
429
|
vty = y;
|
|
428
430
|
} else {
|
|
429
|
-
var rest = MIN_ANGLE_DISALLOW_DRAW_WALL - absAngle;
|
|
430
431
|
// the origin point of rotation(snapping)
|
|
431
432
|
var _originVerId = draggingLine.vertices.findIndex(function (vertice) {
|
|
432
433
|
return vertice !== dragVertexId;
|
|
@@ -435,12 +436,22 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
435
436
|
if (stepUnit) {
|
|
436
437
|
var _ox = vertices[_originVerId].x;
|
|
437
438
|
var _oy = vertices[_originVerId].y;
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
439
|
+
angles.forEach(function (angle, index) {
|
|
440
|
+
if (Math.abs(angle) < MIN_ANGLE_DISALLOW_DRAW_WALL || Math.abs(angle) > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL) {
|
|
441
|
+
var absVal = Math.abs(angle);
|
|
442
|
+
var rest = MIN_ANGLE_DISALLOW_DRAW_WALL - absVal;
|
|
443
|
+
if (absVal > 360 - MIN_ANGLE_DISALLOW_DRAW_WALL) {
|
|
444
|
+
absVal = 360 - absVal;
|
|
445
|
+
rest = -(MIN_ANGLE_DISALLOW_DRAW_WALL - absVal);
|
|
446
|
+
}
|
|
447
|
+
// determine the direction of rotation.
|
|
448
|
+
rest = angle > 0 ? -rest : rest;
|
|
449
|
+
// rotate the current point to last point around the first point of drawing line.
|
|
450
|
+
var res = GeometryUtils.rotatePointAroundPoint(x, y, _ox, _oy, rest);
|
|
451
|
+
vtx = res.x;
|
|
452
|
+
vty = res.y;
|
|
453
|
+
}
|
|
454
|
+
});
|
|
444
455
|
}
|
|
445
456
|
}
|
|
446
457
|
|
|
@@ -536,48 +547,18 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
536
547
|
rectCenterPoint: [[point(mx, my), 180], [point(m1x, m1y), -90], [point(m2x, m2y), 0], [point(m3x, m3y), 90]]
|
|
537
548
|
};
|
|
538
549
|
};
|
|
539
|
-
var
|
|
540
|
-
var
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
x: x,
|
|
552
|
-
y: y
|
|
553
|
-
},
|
|
554
|
-
rotRad: rotation / 180 * Math.PI
|
|
555
|
-
};
|
|
556
|
-
var _width = getProperties(item, 'width');
|
|
557
|
-
var depth = getProperties(item, 'depth');
|
|
558
|
-
val.size = {
|
|
559
|
-
width: _width,
|
|
560
|
-
height: depth
|
|
561
|
-
};
|
|
562
|
-
|
|
563
|
-
// collect geometry
|
|
564
|
-
var _allLines = GeometryUtils.getAllLines(layer) || [];
|
|
565
|
-
var _allLineRects = GeometryUtils.buildRectFromLines(layer, _allLines) || [];
|
|
566
|
-
var _allItemRect = GeometryUtils.getAllItems(scene, catalog, _allLineRects) || {
|
|
567
|
-
others: []
|
|
568
|
-
};
|
|
569
|
-
var _allRect = [].concat(_toConsumableArray(_allItemRect.others || []), _toConsumableArray(_allLineRects));
|
|
570
|
-
|
|
571
|
-
// current item
|
|
572
|
-
var curItemInfo = getCalcRectFromItem(val);
|
|
573
|
-
var pointArray = getDistant(x, y, val.rotRad, curItemInfo, _allRect);
|
|
574
|
-
|
|
575
|
-
// store results safely
|
|
576
|
-
if (Array.isArray(pointArray)) {
|
|
577
|
-
itemsActions.storeDistArray(layerID, id, pointArray);
|
|
578
|
-
}
|
|
579
|
-
}
|
|
580
|
-
});
|
|
550
|
+
var getConnectedLines = function getConnectedLines() {
|
|
551
|
+
var _state$getIn;
|
|
552
|
+
var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
553
|
+
var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
|
|
554
|
+
var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
|
|
555
|
+
var drawingLine = (_state$getIn = state.getIn(['scene', 'layers', layerID, 'lines', lineID])) === null || _state$getIn === void 0 ? void 0 : _state$getIn.toJS();
|
|
556
|
+
// get the lines that have same points with drawing line.
|
|
557
|
+
if (!isEmpty(drawingLine)) {
|
|
558
|
+
var tlines = [];
|
|
559
|
+
getRelatedLines(tlines, drawingLine, vertices, lines);
|
|
560
|
+
setRelatedLines(tlines);
|
|
561
|
+
}
|
|
581
562
|
};
|
|
582
563
|
var onMouseMove = function onMouseMove(viewerEvent) {
|
|
583
564
|
//workaround that allow imageful component to work
|
|
@@ -627,7 +608,6 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
627
608
|
holesActions.updateDrawingHole(layerID, x, y);
|
|
628
609
|
break;
|
|
629
610
|
case constants.MODE_DRAWING_ITEM:
|
|
630
|
-
calcDistanceArray();
|
|
631
611
|
var _layer = scene.layers.get(layerID);
|
|
632
612
|
var flag = false;
|
|
633
613
|
_layer.items.some(function (item) {
|
|
@@ -713,11 +693,11 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
713
693
|
break;
|
|
714
694
|
case constants.MODE_DRAGGING_VERTEX:
|
|
715
695
|
var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
696
|
+
getConnectedLines();
|
|
716
697
|
var result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');
|
|
717
698
|
verticesActions.updateDraggingVertex(result.x, result.y, state.snapMask);
|
|
718
699
|
break;
|
|
719
700
|
case constants.MODE_DRAGGING_ITEM:
|
|
720
|
-
calcDistanceArray();
|
|
721
701
|
prepareSnap();
|
|
722
702
|
var _GeometryUtils$calcSn2 = GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, x, y, allArea),
|
|
723
703
|
nx = _GeometryUtils$calcSn2.nx,
|
|
@@ -801,35 +781,42 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
801
781
|
if (mode === constants.MODE_IDLE) {
|
|
802
782
|
var elementData = extractElementData(event.target);
|
|
803
783
|
if (!elementData) return;
|
|
804
|
-
if (sCount < 2)
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
if (elementData.
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
break;
|
|
811
|
-
case 'vertices':
|
|
812
|
-
verticesActions.beginDraggingVertex(elementData.layer, elementData.id, x, y, state.snapMask);
|
|
813
|
-
break;
|
|
814
|
-
case 'items':
|
|
815
|
-
setToolbar('');
|
|
816
|
-
current_sel_obj_id = elementData.id;
|
|
817
|
-
if (elementData.part === 'rotation-anchor') itemsActions.beginRotatingItem(elementData.layer, elementData.id, x, y);else if (elementData.part === 'remove') break;else if (elementData.part === 'duplicate') break;else if (elementData.part === 'warning_edit') break;else {
|
|
818
|
-
// closes the setting dialog
|
|
819
|
-
if (document.getElementById('setting_dialog')) {
|
|
820
|
-
document.getElementById('setting_dialog').style.display = 'none';
|
|
784
|
+
if (sCount < 2) {
|
|
785
|
+
switch (elementData.prototype) {
|
|
786
|
+
case 'lines':
|
|
787
|
+
if (elementData.selected) {
|
|
788
|
+
if (elementData.part === 'remove') break;else if (elementData.part === 'elevation') break;
|
|
789
|
+
linesActions.beginDraggingLine(elementData.layer, elementData.id, x, y, state.snapMask);
|
|
821
790
|
}
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
791
|
+
break;
|
|
792
|
+
case 'vertices':
|
|
793
|
+
verticesActions.beginDraggingVertex(elementData.layer, elementData.id, x, y, state.snapMask);
|
|
794
|
+
break;
|
|
795
|
+
case 'items':
|
|
796
|
+
setToolbar('');
|
|
797
|
+
current_sel_obj_id = elementData.id;
|
|
798
|
+
if (elementData.part === 'rotation-anchor') itemsActions.beginRotatingItem(elementData.layer, elementData.id, x, y);else if (elementData.part === 'remove') break;else if (elementData.part === 'duplicate') break;else if (elementData.part === 'warning_edit') break;else {
|
|
799
|
+
// closes the setting dialog
|
|
800
|
+
if (document.getElementById('setting_dialog')) {
|
|
801
|
+
document.getElementById('setting_dialog').style.display = 'none';
|
|
802
|
+
}
|
|
803
|
+
itemsActions.selectItem(elementData.layer, elementData.id);
|
|
804
|
+
// projectActions.setMode(constants.MODE_DRAGGING_ITEM);
|
|
805
|
+
itemsActions.beginDraggingItem(elementData.layer, elementData.id, x, y);
|
|
806
|
+
replaceCabinet(false);
|
|
807
|
+
}
|
|
808
|
+
break;
|
|
809
|
+
case 'holes':
|
|
810
|
+
if (elementData.selected) holesActions.beginDraggingHole(elementData.layer, elementData.id, x, y);
|
|
811
|
+
break;
|
|
812
|
+
default:
|
|
813
|
+
break;
|
|
814
|
+
}
|
|
815
|
+
var currentObject = state.getIn(['scene', 'layers', layerID, elementData.prototype, elementData.id]);
|
|
816
|
+
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
817
|
+
type: INTERNAL_EVENT_SELECT_ELEMENT,
|
|
818
|
+
value: currentObject.toJS()
|
|
819
|
+
});
|
|
833
820
|
} else {
|
|
834
821
|
sPoint.x = x;
|
|
835
822
|
sPoint.y = y;
|
|
@@ -865,10 +852,47 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
865
852
|
y = _mapCursorPosition3.y;
|
|
866
853
|
var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
867
854
|
var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
|
|
855
|
+
var elementData = extractElementData(event.target);
|
|
856
|
+
var selectedLayer = scene.getIn(['layers', layerID]);
|
|
857
|
+
var elementPrototype = null;
|
|
858
|
+
var elementID = null;
|
|
859
|
+
var internalType = '';
|
|
860
|
+
switch (mode) {
|
|
861
|
+
case constants.MODE_DRAWING_LINE:
|
|
862
|
+
elementPrototype = 'lines';
|
|
863
|
+
internalType = INTERNAL_EVENT_DRAW_ELEMENT;
|
|
864
|
+
break;
|
|
865
|
+
case constants.MODE_DRAWING_HOLE:
|
|
866
|
+
elementPrototype = 'holes';
|
|
867
|
+
internalType = INTERNAL_EVENT_DRAW_ELEMENT;
|
|
868
|
+
break;
|
|
869
|
+
case constants.MODE_DRAWING_ITEM:
|
|
870
|
+
elementPrototype = 'items';
|
|
871
|
+
internalType = INTERNAL_EVENT_DRAW_ELEMENT;
|
|
872
|
+
break;
|
|
873
|
+
case constants.MODE_DRAGGING_LINE:
|
|
874
|
+
elementPrototype = 'lines';
|
|
875
|
+
internalType = INTERNAL_EVENT_DRAG_ELEMENT;
|
|
876
|
+
break;
|
|
877
|
+
case constants.MODE_DRAGGING_HOLE:
|
|
878
|
+
elementPrototype = 'holes';
|
|
879
|
+
internalType = INTERNAL_EVENT_DRAG_ELEMENT;
|
|
880
|
+
break;
|
|
881
|
+
case constants.MODE_DRAGGING_ITEM:
|
|
882
|
+
elementPrototype = 'items';
|
|
883
|
+
internalType = INTERNAL_EVENT_DRAG_ELEMENT;
|
|
884
|
+
break;
|
|
885
|
+
case constants.MODE_DRAGGING_VERTEX:
|
|
886
|
+
elementPrototype = 'lines';
|
|
887
|
+
internalType = INTERNAL_EVENT_DRAG_ELEMENT;
|
|
888
|
+
break;
|
|
889
|
+
case constants.MODE_ROTATING_ITEM:
|
|
890
|
+
elementPrototype = 'items';
|
|
891
|
+
internalType = INTERNAL_EVENT_ROTATE_ELEMENT;
|
|
892
|
+
break;
|
|
893
|
+
}
|
|
868
894
|
switch (mode) {
|
|
869
895
|
case constants.MODE_IDLE:
|
|
870
|
-
var elementData = extractElementData(event.target);
|
|
871
|
-
var selectedLayer = scene.getIn(['layers', layerID]);
|
|
872
896
|
switch (elementData ? elementData.prototype : 'none') {
|
|
873
897
|
case 'areas':
|
|
874
898
|
if (document.getElementById('setting_dialog')) {
|
|
@@ -889,10 +913,10 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
889
913
|
projectActions.setMode(_mode);
|
|
890
914
|
break;
|
|
891
915
|
} else {
|
|
892
|
-
var
|
|
893
|
-
var
|
|
894
|
-
getRelatedLines(
|
|
895
|
-
setRelatedLines(
|
|
916
|
+
var tlines = [];
|
|
917
|
+
var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', elementData.id]).toJS();
|
|
918
|
+
getRelatedLines(tlines, drawingLine, vertices, lines);
|
|
919
|
+
setRelatedLines(tlines);
|
|
896
920
|
linesActions.selectLine(elementData.layer, elementData.id);
|
|
897
921
|
break;
|
|
898
922
|
}
|
|
@@ -1178,12 +1202,7 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
1178
1202
|
// if (dx > dy) y = prevVertex.y
|
|
1179
1203
|
// else x = prevVertex.x;
|
|
1180
1204
|
setdrawStart(true);
|
|
1181
|
-
|
|
1182
|
-
var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', lineID]).toJS();
|
|
1183
|
-
// get the lines that have same points with drawing line.
|
|
1184
|
-
var tlines = [];
|
|
1185
|
-
getRelatedLines(tlines, drawingLine, vertices, lines);
|
|
1186
|
-
setRelatedLines(tlines);
|
|
1205
|
+
getConnectedLines();
|
|
1187
1206
|
var endInfor = getEndPoint(vertices, x, y, 'END_DRAWIN_LINE');
|
|
1188
1207
|
linesActions.endDrawingLine(endInfor.x, endInfor.y, state.snapMask);
|
|
1189
1208
|
linesActions.beginDrawingLine(layerID, endInfor.x, endInfor.y, state.snapMask);
|
|
@@ -1198,6 +1217,7 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
1198
1217
|
linesActions.endDraggingLine(x, y, relatedLines, state.snapMask);
|
|
1199
1218
|
break;
|
|
1200
1219
|
case constants.MODE_DRAGGING_VERTEX:
|
|
1220
|
+
getConnectedLines();
|
|
1201
1221
|
var result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');
|
|
1202
1222
|
verticesActions.endDraggingVertex(result.x, result.y, state.snapMask);
|
|
1203
1223
|
break;
|
|
@@ -1212,6 +1232,14 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
1212
1232
|
itemsActions.endRotatingItem(x, y);
|
|
1213
1233
|
break;
|
|
1214
1234
|
}
|
|
1235
|
+
if (elementPrototype) {
|
|
1236
|
+
elementID = state.getIn(['scene', 'layers', layerID, 'selected', elementPrototype]).first();
|
|
1237
|
+
var _currentObject = state.getIn(['scene', 'layers', layerID, elementPrototype, elementID]);
|
|
1238
|
+
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
1239
|
+
type: internalType,
|
|
1240
|
+
value: _currentObject.toJS()
|
|
1241
|
+
});
|
|
1242
|
+
}
|
|
1215
1243
|
event.stopPropagation();
|
|
1216
1244
|
};
|
|
1217
1245
|
var onChangeValue = function onChangeValue(value) {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* @author angelxuanchang
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
import * as THREE from 'three';
|
|
8
8
|
var MTLLoader;
|
|
9
9
|
MTLLoader = function MTLLoader(manager) {
|
|
10
10
|
this.manager = manager !== undefined ? manager : THREE.DefaultLoadingManager;
|
|
@@ -354,4 +354,4 @@ MTLLoader.MaterialCreator.prototype = {
|
|
|
354
354
|
return texture;
|
|
355
355
|
}
|
|
356
356
|
};
|
|
357
|
-
|
|
357
|
+
export default MTLLoader;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* @author mrdoob / http://mrdoob.com/
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
import * as THREE from 'three';
|
|
6
6
|
var OBJLoader;
|
|
7
7
|
OBJLoader = function OBJLoader(manager) {
|
|
8
8
|
this.manager = manager !== undefined ? manager : THREE.DefaultLoadingManager;
|
|
@@ -459,4 +459,4 @@ OBJLoader.prototype = {
|
|
|
459
459
|
return container;
|
|
460
460
|
}
|
|
461
461
|
};
|
|
462
|
-
|
|
462
|
+
export default OBJLoader;
|
|
@@ -13,9 +13,8 @@
|
|
|
13
13
|
// Zoom - middle mouse, or mousewheel / touch: two finger spread or squish
|
|
14
14
|
// Pan - right mouse, or arrow keys / touch: three finter swipe
|
|
15
15
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
module.exports = OrbitControls = function OrbitControls(object, domElement) {
|
|
16
|
+
import * as THREE from 'three';
|
|
17
|
+
export default function OrbitControls(object, domElement) {
|
|
19
18
|
this.object = object;
|
|
20
19
|
this.domElement = domElement !== undefined ? domElement : document;
|
|
21
20
|
|
|
@@ -623,7 +622,7 @@ module.exports = OrbitControls = function OrbitControls(object, domElement) {
|
|
|
623
622
|
// force an update at start
|
|
624
623
|
|
|
625
624
|
this.update();
|
|
626
|
-
}
|
|
625
|
+
}
|
|
627
626
|
OrbitControls.prototype = Object.create(THREE.EventDispatcher.prototype);
|
|
628
627
|
OrbitControls.prototype.constructor = OrbitControls;
|
|
629
628
|
Object.defineProperties(OrbitControls.prototype, {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @author mrdoob / http://mrdoob.com/
|
|
3
|
+
* Converted to ESM
|
|
3
4
|
*/
|
|
4
5
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
module.exports = PointerLockControls = function PointerLockControls(camera) {
|
|
6
|
+
import * as THREE from 'three';
|
|
7
|
+
export default function PointerLockControls(camera) {
|
|
8
8
|
var scope = this;
|
|
9
9
|
camera.rotation.set(0, 0, 0);
|
|
10
10
|
var pitchObject = new THREE.Object3D();
|
|
@@ -15,14 +15,14 @@ module.exports = PointerLockControls = function PointerLockControls(camera) {
|
|
|
15
15
|
yawObject.position.y = 10;
|
|
16
16
|
yawObject.add(pitchObject);
|
|
17
17
|
var PI_2 = Math.PI / 2;
|
|
18
|
-
|
|
18
|
+
function onMouseMove(event) {
|
|
19
19
|
if (scope.enabled === false) return;
|
|
20
20
|
var movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0;
|
|
21
21
|
var movementY = event.movementY || event.mozMovementY || event.webkitMovementY || 0;
|
|
22
22
|
yawObject.rotation.y -= movementX * 0.002;
|
|
23
23
|
pitchObject.rotation.x -= movementY * 0.002;
|
|
24
24
|
pitchObject.rotation.x = Math.max(-PI_2, Math.min(PI_2, pitchObject.rotation.x));
|
|
25
|
-
}
|
|
25
|
+
}
|
|
26
26
|
this.dispose = function () {
|
|
27
27
|
document.removeEventListener('mousemove', onMouseMove, false);
|
|
28
28
|
};
|
|
@@ -33,7 +33,6 @@ module.exports = PointerLockControls = function PointerLockControls(camera) {
|
|
|
33
33
|
};
|
|
34
34
|
this.getDirection = function () {
|
|
35
35
|
// assumes the camera itself is not rotated
|
|
36
|
-
|
|
37
36
|
var direction = new THREE.Vector3(0, 0, -1);
|
|
38
37
|
var rotation = new THREE.Euler(0, 0, 0, 'YXZ');
|
|
39
38
|
return function (v) {
|
|
@@ -42,4 +41,4 @@ module.exports = PointerLockControls = function PointerLockControls(camera) {
|
|
|
42
41
|
return v;
|
|
43
42
|
};
|
|
44
43
|
}();
|
|
45
|
-
}
|
|
44
|
+
}
|