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
|
@@ -10,6 +10,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
10
10
|
var _convertUnitsLite = require("../../utils/convert-units-lite");
|
|
11
11
|
var _idBroker = _interopRequireDefault(require("../../utils/id-broker"));
|
|
12
12
|
var _constants = require("../../constants");
|
|
13
|
+
var _line = require("./line");
|
|
13
14
|
var STYLE = {
|
|
14
15
|
stroke: _constants.TEXT_COLOR_NEUTRAL_7,
|
|
15
16
|
strokeWidth: '1px'
|
|
@@ -22,6 +23,7 @@ var STYLE_TEXT = {
|
|
|
22
23
|
textAnchor: 'middle',
|
|
23
24
|
fontSize: '12px',
|
|
24
25
|
pointerEvents: 'none',
|
|
26
|
+
fill: '#455A64',
|
|
25
27
|
//http://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting-using-css
|
|
26
28
|
WebkitTouchCallout: 'none' /* iOS Safari */,
|
|
27
29
|
WebkitUserSelect: 'none' /* Chrome/Safari/Opera */,
|
|
@@ -35,37 +37,9 @@ function Ruler(_ref) {
|
|
|
35
37
|
unit = _ref.unit,
|
|
36
38
|
rulerUnit = _ref.rulerUnit,
|
|
37
39
|
transform = _ref.transform,
|
|
38
|
-
|
|
39
|
-
var update = function update(lengthInput, unitInput, type) {
|
|
40
|
-
var newLength = toFixedFloat(lengthInput);
|
|
41
|
-
var merged = null;
|
|
42
|
-
if (type === 0) {
|
|
43
|
-
merged = value.merge({
|
|
44
|
-
_length: newLength,
|
|
45
|
-
length: (0, _convertUnitsLite.convert)(newLength).from(unitInput).to('cm')
|
|
46
|
-
});
|
|
47
|
-
} else {
|
|
48
|
-
merged = value.merge({
|
|
49
|
-
_length: (0, _convertUnitsLite.convert)(newLength).from(UNIT_INCH).to(unitInput),
|
|
50
|
-
_unit: unitInput
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
// if (hook) {
|
|
54
|
-
// return hook(merged, sourceElement, internalState, state).then(val => {
|
|
55
|
-
// return onUpdate(val);
|
|
56
|
-
// });
|
|
57
|
-
// }
|
|
58
|
-
// return onUpdate(merged);
|
|
59
|
-
};
|
|
60
|
-
// let _unit = "in";
|
|
61
|
-
// let distanceText = convert(length).from(unit).to(rulerUnit);
|
|
40
|
+
style = _ref.style;
|
|
62
41
|
var distanceText = (0, _convertUnitsLite.convert)(length).from(unit).to(rulerUnit).toFixed(0);
|
|
63
|
-
var
|
|
64
|
-
// let _ft_len = convert(_length).from('in').to('ft');
|
|
65
|
-
// let _ft_val = Math.floor(_ft_len); _ft_len -= _ft_val;
|
|
66
|
-
// let _in_val = convert(_ft_len).from('ft').to('in').toFixed(0);
|
|
67
|
-
// let distanceText = `${_ft_val}'${_in_val}"`;
|
|
68
|
-
var textLength = (distanceText.length + layer.unit.length) * 18;
|
|
42
|
+
var textLength = (distanceText.length + layer.unit.length) * 9;
|
|
69
43
|
return /*#__PURE__*/_react["default"].createElement("g", {
|
|
70
44
|
transform: transform
|
|
71
45
|
}, /*#__PURE__*/_react["default"].createElement("g", {
|
|
@@ -86,18 +60,24 @@ function Ruler(_ref) {
|
|
|
86
60
|
style: STYLE_TEXT,
|
|
87
61
|
fill: _constants.TEXT_COLOR_NEUTRAL_7
|
|
88
62
|
}, Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/_react["default"].createElement("line", {
|
|
89
|
-
x1:
|
|
63
|
+
x1: style === _line.STYLE_ROOM_SHAPE ? 0 : 4,
|
|
90
64
|
y1: "0",
|
|
91
65
|
x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2,
|
|
92
66
|
y2: "0",
|
|
93
|
-
style:
|
|
67
|
+
style: style
|
|
94
68
|
}), /*#__PURE__*/_react["default"].createElement("line", {
|
|
95
69
|
x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length,
|
|
96
70
|
y1: "0",
|
|
97
|
-
x2: length,
|
|
71
|
+
x2: style === _line.STYLE_ROOM_SHAPE ? length : length - 4,
|
|
98
72
|
y2: "0",
|
|
99
|
-
style:
|
|
100
|
-
})
|
|
73
|
+
style: style
|
|
74
|
+
}), style !== _line.STYLE_ROOM_SHAPE && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("polygon", {
|
|
75
|
+
points: "3, 0, 6.5, -2, 6.5, 2 ",
|
|
76
|
+
style: style
|
|
77
|
+
}), /*#__PURE__*/_react["default"].createElement("polygon", {
|
|
78
|
+
points: "".concat(length - 3, ", 0, ").concat(length - 6.5, ", 2, ").concat(length - 6.5, ", -2"),
|
|
79
|
+
style: style
|
|
80
|
+
})));
|
|
101
81
|
}
|
|
102
82
|
Ruler.propTypes = {
|
|
103
83
|
length: _propTypes["default"].number.isRequired,
|
|
@@ -14,13 +14,15 @@ var ARROW_STYLE = {
|
|
|
14
14
|
strokeLinecap: 'round'
|
|
15
15
|
};
|
|
16
16
|
var STYLE = {
|
|
17
|
-
stroke: '
|
|
18
|
-
|
|
17
|
+
stroke: '#455A64',
|
|
18
|
+
fill: '#455A64',
|
|
19
|
+
strokeWidth: '1.5px'
|
|
19
20
|
};
|
|
20
21
|
var STYLE_TEXT = {
|
|
21
22
|
textAnchor: 'middle',
|
|
22
23
|
fontSize: '10px',
|
|
23
24
|
pointerEvents: 'none',
|
|
25
|
+
fill: '#455A64',
|
|
24
26
|
//http://stackoverflow.com/questions/826782/how-to-disable-text-selection-highlighting-using-css
|
|
25
27
|
WebkitTouchCallout: 'none' /* iOS Safari */,
|
|
26
28
|
WebkitUserSelect: 'none' /* Chrome/Safari/Opera */,
|
|
@@ -82,32 +84,24 @@ function RulerDist(_ref) {
|
|
|
82
84
|
y: "0",
|
|
83
85
|
transform: "translate(".concat(length / 2, ",").concat(ay, ") scale(1, -1) rotate(").concat(textRotation, ")"),
|
|
84
86
|
style: STYLE_TEXT
|
|
85
|
-
}, Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit)), /*#__PURE__*/_react["default"].createElement("
|
|
86
|
-
cx: "1",
|
|
87
|
-
cy: "0",
|
|
88
|
-
fill: "white",
|
|
89
|
-
r: "1.1",
|
|
90
|
-
stroke: "black",
|
|
91
|
-
strokeWidth: "0.6"
|
|
92
|
-
}), /*#__PURE__*/_react["default"].createElement("line", {
|
|
87
|
+
}, Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/_react["default"].createElement("line", {
|
|
93
88
|
x1: "2",
|
|
94
89
|
y1: "0",
|
|
95
90
|
x2: (length - textLength) / 2 < 0 ? 0 : length,
|
|
96
91
|
y2: "0",
|
|
97
92
|
style: STYLE
|
|
93
|
+
}), /*#__PURE__*/_react["default"].createElement("polygon", {
|
|
94
|
+
points: "1, 0, 4.5, -2, 4.5, 2 ",
|
|
95
|
+
style: STYLE
|
|
98
96
|
}), /*#__PURE__*/_react["default"].createElement("line", {
|
|
99
97
|
x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length,
|
|
100
98
|
y1: "0",
|
|
101
99
|
x2: length,
|
|
102
100
|
y2: "0",
|
|
103
101
|
style: STYLE
|
|
104
|
-
}), /*#__PURE__*/_react["default"].createElement("
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
fill: "white",
|
|
108
|
-
r: "1.1",
|
|
109
|
-
stroke: "black",
|
|
110
|
-
strokeWidth: "0.6"
|
|
102
|
+
}), /*#__PURE__*/_react["default"].createElement("polygon", {
|
|
103
|
+
points: "".concat(length - 1, ", 0, ").concat(length - 4.5, ", 2, ").concat(length - 4.5, ", -2"),
|
|
104
|
+
style: STYLE
|
|
111
105
|
}));
|
|
112
106
|
} else {
|
|
113
107
|
return /*#__PURE__*/_react["default"].createElement("g", {
|
|
@@ -117,32 +111,24 @@ function RulerDist(_ref) {
|
|
|
117
111
|
y: "0",
|
|
118
112
|
transform: "translate(".concat(length / 2, ",").concat(ay, ") scale(1, -1) rotate(").concat(textRotation, ")"),
|
|
119
113
|
style: STYLE_TEXT
|
|
120
|
-
}, Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit)), /*#__PURE__*/_react["default"].createElement("
|
|
121
|
-
cx: "1",
|
|
122
|
-
cy: "0",
|
|
123
|
-
fill: "white",
|
|
124
|
-
r: "1.1",
|
|
125
|
-
stroke: "black",
|
|
126
|
-
strokeWidth: "0.6"
|
|
127
|
-
}), /*#__PURE__*/_react["default"].createElement("line", {
|
|
114
|
+
}, Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/_react["default"].createElement("line", {
|
|
128
115
|
x1: "2",
|
|
129
116
|
y1: "0",
|
|
130
117
|
x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2,
|
|
131
118
|
y2: "0",
|
|
132
119
|
style: STYLE
|
|
120
|
+
}), /*#__PURE__*/_react["default"].createElement("polygon", {
|
|
121
|
+
points: "1, 0, 4.5, -2, 4.5, 2 ",
|
|
122
|
+
style: STYLE
|
|
133
123
|
}), /*#__PURE__*/_react["default"].createElement("line", {
|
|
134
124
|
x1: (length + textLength) / 2 < 0 ? 0 : (length + textLength) / 2 < length ? (length + textLength) / 2 : length,
|
|
135
125
|
y1: "0",
|
|
136
126
|
x2: length,
|
|
137
127
|
y2: "0",
|
|
138
128
|
style: STYLE
|
|
139
|
-
}), /*#__PURE__*/_react["default"].createElement("
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
fill: "white",
|
|
143
|
-
r: "1.1",
|
|
144
|
-
stroke: "black",
|
|
145
|
-
strokeWidth: "0.6"
|
|
129
|
+
}), /*#__PURE__*/_react["default"].createElement("polygon", {
|
|
130
|
+
points: "".concat(length - 1, ", 0, ").concat(length - 4.5, ", 2, ").concat(length - 4.5, ", -2"),
|
|
131
|
+
style: STYLE
|
|
146
132
|
}));
|
|
147
133
|
}
|
|
148
134
|
}
|
|
@@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = Viewer2D;
|
|
9
|
-
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
10
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
12
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
@@ -134,7 +133,8 @@ function Viewer2D(_ref, _ref2) {
|
|
|
134
133
|
width = _ref.width,
|
|
135
134
|
height = _ref.height,
|
|
136
135
|
setToolbar = _ref.setToolbar,
|
|
137
|
-
replaceCabinet = _ref.replaceCabinet
|
|
136
|
+
replaceCabinet = _ref.replaceCabinet,
|
|
137
|
+
onInternalEvent = _ref.onInternalEvent;
|
|
138
138
|
var viewer2DActions = _ref2.viewer2DActions,
|
|
139
139
|
linesActions = _ref2.linesActions,
|
|
140
140
|
holesActions = _ref2.holesActions,
|
|
@@ -401,6 +401,7 @@ function Viewer2D(_ref, _ref2) {
|
|
|
401
401
|
vertices[dragVertexId].y = y;
|
|
402
402
|
}
|
|
403
403
|
var absAngle, lineAngle;
|
|
404
|
+
var angles = [];
|
|
404
405
|
if (draggingLine.vertices[0] !== draggingLine.vertices[1]) {
|
|
405
406
|
if ((0, _helper.isEmpty)(relatedLines) && mode !== 'DRAGGING_LINE') {
|
|
406
407
|
endDrag.push(true);
|
|
@@ -419,6 +420,7 @@ function Viewer2D(_ref, _ref2) {
|
|
|
419
420
|
absAngle = Math.abs(lineAngle);
|
|
420
421
|
var tmpRelated = [];
|
|
421
422
|
_export2.GeometryUtils.getRelatedLines(tmpRelated, line, vertices, allLines, draggingLine.id);
|
|
423
|
+
angles.push(lineAngle);
|
|
422
424
|
for (var j = 0; j < tmpRelated.length; j++) {
|
|
423
425
|
var tmpAngle = Math.abs(_export2.GeometryUtils.angleBetweenTwoLines(tmpRelated[j], line, vertices));
|
|
424
426
|
if (tmpAngle < _constants.MIN_ANGLE_DISALLOW_DRAW_WALL || tmpAngle > 360 - _constants.MIN_ANGLE_DISALLOW_DRAW_WALL) {
|
|
@@ -436,7 +438,6 @@ function Viewer2D(_ref, _ref2) {
|
|
|
436
438
|
vtx = x;
|
|
437
439
|
vty = y;
|
|
438
440
|
} else {
|
|
439
|
-
var rest = _constants.MIN_ANGLE_DISALLOW_DRAW_WALL - absAngle;
|
|
440
441
|
// the origin point of rotation(snapping)
|
|
441
442
|
var _originVerId = draggingLine.vertices.findIndex(function (vertice) {
|
|
442
443
|
return vertice !== dragVertexId;
|
|
@@ -445,12 +446,22 @@ function Viewer2D(_ref, _ref2) {
|
|
|
445
446
|
if (stepUnit) {
|
|
446
447
|
var _ox = vertices[_originVerId].x;
|
|
447
448
|
var _oy = vertices[_originVerId].y;
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
449
|
+
angles.forEach(function (angle, index) {
|
|
450
|
+
if (Math.abs(angle) < _constants.MIN_ANGLE_DISALLOW_DRAW_WALL || Math.abs(angle) > 360 - _constants.MIN_ANGLE_DISALLOW_DRAW_WALL) {
|
|
451
|
+
var absVal = Math.abs(angle);
|
|
452
|
+
var rest = _constants.MIN_ANGLE_DISALLOW_DRAW_WALL - absVal;
|
|
453
|
+
if (absVal > 360 - _constants.MIN_ANGLE_DISALLOW_DRAW_WALL) {
|
|
454
|
+
absVal = 360 - absVal;
|
|
455
|
+
rest = -(_constants.MIN_ANGLE_DISALLOW_DRAW_WALL - absVal);
|
|
456
|
+
}
|
|
457
|
+
// determine the direction of rotation.
|
|
458
|
+
rest = angle > 0 ? -rest : rest;
|
|
459
|
+
// rotate the current point to last point around the first point of drawing line.
|
|
460
|
+
var res = _export2.GeometryUtils.rotatePointAroundPoint(x, y, _ox, _oy, rest);
|
|
461
|
+
vtx = res.x;
|
|
462
|
+
vty = res.y;
|
|
463
|
+
}
|
|
464
|
+
});
|
|
454
465
|
}
|
|
455
466
|
}
|
|
456
467
|
|
|
@@ -546,48 +557,18 @@ function Viewer2D(_ref, _ref2) {
|
|
|
546
557
|
rectCenterPoint: [[point(mx, my), 180], [point(m1x, m1y), -90], [point(m2x, m2y), 0], [point(m3x, m3y), 90]]
|
|
547
558
|
};
|
|
548
559
|
};
|
|
549
|
-
var
|
|
550
|
-
var
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
x: x,
|
|
562
|
-
y: y
|
|
563
|
-
},
|
|
564
|
-
rotRad: rotation / 180 * Math.PI
|
|
565
|
-
};
|
|
566
|
-
var _width = getProperties(item, 'width');
|
|
567
|
-
var depth = getProperties(item, 'depth');
|
|
568
|
-
val.size = {
|
|
569
|
-
width: _width,
|
|
570
|
-
height: depth
|
|
571
|
-
};
|
|
572
|
-
|
|
573
|
-
// collect geometry
|
|
574
|
-
var _allLines = _export2.GeometryUtils.getAllLines(layer) || [];
|
|
575
|
-
var _allLineRects = _export2.GeometryUtils.buildRectFromLines(layer, _allLines) || [];
|
|
576
|
-
var _allItemRect = _export2.GeometryUtils.getAllItems(scene, catalog, _allLineRects) || {
|
|
577
|
-
others: []
|
|
578
|
-
};
|
|
579
|
-
var _allRect = [].concat((0, _toConsumableArray2["default"])(_allItemRect.others || []), (0, _toConsumableArray2["default"])(_allLineRects));
|
|
580
|
-
|
|
581
|
-
// current item
|
|
582
|
-
var curItemInfo = getCalcRectFromItem(val);
|
|
583
|
-
var pointArray = getDistant(x, y, val.rotRad, curItemInfo, _allRect);
|
|
584
|
-
|
|
585
|
-
// store results safely
|
|
586
|
-
if (Array.isArray(pointArray)) {
|
|
587
|
-
itemsActions.storeDistArray(layerID, id, pointArray);
|
|
588
|
-
}
|
|
589
|
-
}
|
|
590
|
-
});
|
|
560
|
+
var getConnectedLines = function getConnectedLines() {
|
|
561
|
+
var _state$getIn;
|
|
562
|
+
var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
563
|
+
var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
|
|
564
|
+
var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
|
|
565
|
+
var drawingLine = (_state$getIn = state.getIn(['scene', 'layers', layerID, 'lines', lineID])) === null || _state$getIn === void 0 ? void 0 : _state$getIn.toJS();
|
|
566
|
+
// get the lines that have same points with drawing line.
|
|
567
|
+
if (!(0, _helper.isEmpty)(drawingLine)) {
|
|
568
|
+
var tlines = [];
|
|
569
|
+
getRelatedLines(tlines, drawingLine, vertices, lines);
|
|
570
|
+
setRelatedLines(tlines);
|
|
571
|
+
}
|
|
591
572
|
};
|
|
592
573
|
var onMouseMove = function onMouseMove(viewerEvent) {
|
|
593
574
|
//workaround that allow imageful component to work
|
|
@@ -637,7 +618,6 @@ function Viewer2D(_ref, _ref2) {
|
|
|
637
618
|
holesActions.updateDrawingHole(layerID, x, y);
|
|
638
619
|
break;
|
|
639
620
|
case constants.MODE_DRAWING_ITEM:
|
|
640
|
-
calcDistanceArray();
|
|
641
621
|
var _layer = scene.layers.get(layerID);
|
|
642
622
|
var flag = false;
|
|
643
623
|
_layer.items.some(function (item) {
|
|
@@ -723,11 +703,11 @@ function Viewer2D(_ref, _ref2) {
|
|
|
723
703
|
break;
|
|
724
704
|
case constants.MODE_DRAGGING_VERTEX:
|
|
725
705
|
var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
706
|
+
getConnectedLines();
|
|
726
707
|
var result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');
|
|
727
708
|
verticesActions.updateDraggingVertex(result.x, result.y, state.snapMask);
|
|
728
709
|
break;
|
|
729
710
|
case constants.MODE_DRAGGING_ITEM:
|
|
730
|
-
calcDistanceArray();
|
|
731
711
|
prepareSnap();
|
|
732
712
|
var _GeometryUtils$calcSn2 = _export2.GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, x, y, allArea),
|
|
733
713
|
nx = _GeometryUtils$calcSn2.nx,
|
|
@@ -811,35 +791,42 @@ function Viewer2D(_ref, _ref2) {
|
|
|
811
791
|
if (mode === constants.MODE_IDLE) {
|
|
812
792
|
var elementData = extractElementData(event.target);
|
|
813
793
|
if (!elementData) return;
|
|
814
|
-
if (sCount < 2)
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
if (elementData.
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
break;
|
|
821
|
-
case 'vertices':
|
|
822
|
-
verticesActions.beginDraggingVertex(elementData.layer, elementData.id, x, y, state.snapMask);
|
|
823
|
-
break;
|
|
824
|
-
case 'items':
|
|
825
|
-
setToolbar('');
|
|
826
|
-
current_sel_obj_id = elementData.id;
|
|
827
|
-
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 {
|
|
828
|
-
// closes the setting dialog
|
|
829
|
-
if (document.getElementById('setting_dialog')) {
|
|
830
|
-
document.getElementById('setting_dialog').style.display = 'none';
|
|
794
|
+
if (sCount < 2) {
|
|
795
|
+
switch (elementData.prototype) {
|
|
796
|
+
case 'lines':
|
|
797
|
+
if (elementData.selected) {
|
|
798
|
+
if (elementData.part === 'remove') break;else if (elementData.part === 'elevation') break;
|
|
799
|
+
linesActions.beginDraggingLine(elementData.layer, elementData.id, x, y, state.snapMask);
|
|
831
800
|
}
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
841
|
-
|
|
842
|
-
|
|
801
|
+
break;
|
|
802
|
+
case 'vertices':
|
|
803
|
+
verticesActions.beginDraggingVertex(elementData.layer, elementData.id, x, y, state.snapMask);
|
|
804
|
+
break;
|
|
805
|
+
case 'items':
|
|
806
|
+
setToolbar('');
|
|
807
|
+
current_sel_obj_id = elementData.id;
|
|
808
|
+
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 {
|
|
809
|
+
// closes the setting dialog
|
|
810
|
+
if (document.getElementById('setting_dialog')) {
|
|
811
|
+
document.getElementById('setting_dialog').style.display = 'none';
|
|
812
|
+
}
|
|
813
|
+
itemsActions.selectItem(elementData.layer, elementData.id);
|
|
814
|
+
// projectActions.setMode(constants.MODE_DRAGGING_ITEM);
|
|
815
|
+
itemsActions.beginDraggingItem(elementData.layer, elementData.id, x, y);
|
|
816
|
+
replaceCabinet(false);
|
|
817
|
+
}
|
|
818
|
+
break;
|
|
819
|
+
case 'holes':
|
|
820
|
+
if (elementData.selected) holesActions.beginDraggingHole(elementData.layer, elementData.id, x, y);
|
|
821
|
+
break;
|
|
822
|
+
default:
|
|
823
|
+
break;
|
|
824
|
+
}
|
|
825
|
+
var currentObject = state.getIn(['scene', 'layers', layerID, elementData.prototype, elementData.id]);
|
|
826
|
+
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
827
|
+
type: _constants.INTERNAL_EVENT_SELECT_ELEMENT,
|
|
828
|
+
value: currentObject.toJS()
|
|
829
|
+
});
|
|
843
830
|
} else {
|
|
844
831
|
sPoint.x = x;
|
|
845
832
|
sPoint.y = y;
|
|
@@ -875,10 +862,47 @@ function Viewer2D(_ref, _ref2) {
|
|
|
875
862
|
y = _mapCursorPosition3.y;
|
|
876
863
|
var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
877
864
|
var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
|
|
865
|
+
var elementData = extractElementData(event.target);
|
|
866
|
+
var selectedLayer = scene.getIn(['layers', layerID]);
|
|
867
|
+
var elementPrototype = null;
|
|
868
|
+
var elementID = null;
|
|
869
|
+
var internalType = '';
|
|
870
|
+
switch (mode) {
|
|
871
|
+
case constants.MODE_DRAWING_LINE:
|
|
872
|
+
elementPrototype = 'lines';
|
|
873
|
+
internalType = _constants.INTERNAL_EVENT_DRAW_ELEMENT;
|
|
874
|
+
break;
|
|
875
|
+
case constants.MODE_DRAWING_HOLE:
|
|
876
|
+
elementPrototype = 'holes';
|
|
877
|
+
internalType = _constants.INTERNAL_EVENT_DRAW_ELEMENT;
|
|
878
|
+
break;
|
|
879
|
+
case constants.MODE_DRAWING_ITEM:
|
|
880
|
+
elementPrototype = 'items';
|
|
881
|
+
internalType = _constants.INTERNAL_EVENT_DRAW_ELEMENT;
|
|
882
|
+
break;
|
|
883
|
+
case constants.MODE_DRAGGING_LINE:
|
|
884
|
+
elementPrototype = 'lines';
|
|
885
|
+
internalType = _constants.INTERNAL_EVENT_DRAG_ELEMENT;
|
|
886
|
+
break;
|
|
887
|
+
case constants.MODE_DRAGGING_HOLE:
|
|
888
|
+
elementPrototype = 'holes';
|
|
889
|
+
internalType = _constants.INTERNAL_EVENT_DRAG_ELEMENT;
|
|
890
|
+
break;
|
|
891
|
+
case constants.MODE_DRAGGING_ITEM:
|
|
892
|
+
elementPrototype = 'items';
|
|
893
|
+
internalType = _constants.INTERNAL_EVENT_DRAG_ELEMENT;
|
|
894
|
+
break;
|
|
895
|
+
case constants.MODE_DRAGGING_VERTEX:
|
|
896
|
+
elementPrototype = 'lines';
|
|
897
|
+
internalType = _constants.INTERNAL_EVENT_DRAG_ELEMENT;
|
|
898
|
+
break;
|
|
899
|
+
case constants.MODE_ROTATING_ITEM:
|
|
900
|
+
elementPrototype = 'items';
|
|
901
|
+
internalType = _constants.INTERNAL_EVENT_ROTATE_ELEMENT;
|
|
902
|
+
break;
|
|
903
|
+
}
|
|
878
904
|
switch (mode) {
|
|
879
905
|
case constants.MODE_IDLE:
|
|
880
|
-
var elementData = extractElementData(event.target);
|
|
881
|
-
var selectedLayer = scene.getIn(['layers', layerID]);
|
|
882
906
|
switch (elementData ? elementData.prototype : 'none') {
|
|
883
907
|
case 'areas':
|
|
884
908
|
if (document.getElementById('setting_dialog')) {
|
|
@@ -899,10 +923,10 @@ function Viewer2D(_ref, _ref2) {
|
|
|
899
923
|
projectActions.setMode(_mode);
|
|
900
924
|
break;
|
|
901
925
|
} else {
|
|
902
|
-
var
|
|
903
|
-
var
|
|
904
|
-
getRelatedLines(
|
|
905
|
-
setRelatedLines(
|
|
926
|
+
var tlines = [];
|
|
927
|
+
var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', elementData.id]).toJS();
|
|
928
|
+
getRelatedLines(tlines, drawingLine, vertices, lines);
|
|
929
|
+
setRelatedLines(tlines);
|
|
906
930
|
linesActions.selectLine(elementData.layer, elementData.id);
|
|
907
931
|
break;
|
|
908
932
|
}
|
|
@@ -1188,12 +1212,7 @@ function Viewer2D(_ref, _ref2) {
|
|
|
1188
1212
|
// if (dx > dy) y = prevVertex.y
|
|
1189
1213
|
// else x = prevVertex.x;
|
|
1190
1214
|
setdrawStart(true);
|
|
1191
|
-
|
|
1192
|
-
var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', lineID]).toJS();
|
|
1193
|
-
// get the lines that have same points with drawing line.
|
|
1194
|
-
var tlines = [];
|
|
1195
|
-
getRelatedLines(tlines, drawingLine, vertices, lines);
|
|
1196
|
-
setRelatedLines(tlines);
|
|
1215
|
+
getConnectedLines();
|
|
1197
1216
|
var endInfor = getEndPoint(vertices, x, y, 'END_DRAWIN_LINE');
|
|
1198
1217
|
linesActions.endDrawingLine(endInfor.x, endInfor.y, state.snapMask);
|
|
1199
1218
|
linesActions.beginDrawingLine(layerID, endInfor.x, endInfor.y, state.snapMask);
|
|
@@ -1208,6 +1227,7 @@ function Viewer2D(_ref, _ref2) {
|
|
|
1208
1227
|
linesActions.endDraggingLine(x, y, relatedLines, state.snapMask);
|
|
1209
1228
|
break;
|
|
1210
1229
|
case constants.MODE_DRAGGING_VERTEX:
|
|
1230
|
+
getConnectedLines();
|
|
1211
1231
|
var result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');
|
|
1212
1232
|
verticesActions.endDraggingVertex(result.x, result.y, state.snapMask);
|
|
1213
1233
|
break;
|
|
@@ -1222,6 +1242,14 @@ function Viewer2D(_ref, _ref2) {
|
|
|
1222
1242
|
itemsActions.endRotatingItem(x, y);
|
|
1223
1243
|
break;
|
|
1224
1244
|
}
|
|
1245
|
+
if (elementPrototype) {
|
|
1246
|
+
elementID = state.getIn(['scene', 'layers', layerID, 'selected', elementPrototype]).first();
|
|
1247
|
+
var _currentObject = state.getIn(['scene', 'layers', layerID, elementPrototype, elementID]);
|
|
1248
|
+
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
1249
|
+
type: internalType,
|
|
1250
|
+
value: _currentObject.toJS()
|
|
1251
|
+
});
|
|
1252
|
+
}
|
|
1225
1253
|
event.stopPropagation();
|
|
1226
1254
|
};
|
|
1227
1255
|
var onChangeValue = function onChangeValue(value) {
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var THREE = _interopRequireWildcard(require("three"));
|
|
9
|
+
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); }
|
|
3
10
|
/**
|
|
4
11
|
* Loads a Wavefront .mtl file specifying materials
|
|
5
12
|
*
|
|
6
13
|
* @author angelxuanchang
|
|
7
14
|
*/
|
|
8
15
|
|
|
9
|
-
var THREE = window.THREE || require('three');
|
|
10
16
|
var MTLLoader;
|
|
11
17
|
MTLLoader = function MTLLoader(manager) {
|
|
12
18
|
this.manager = manager !== undefined ? manager : THREE.DefaultLoadingManager;
|
|
@@ -356,4 +362,5 @@ MTLLoader.MaterialCreator.prototype = {
|
|
|
356
362
|
return texture;
|
|
357
363
|
}
|
|
358
364
|
};
|
|
359
|
-
|
|
365
|
+
var _default = exports["default"] = MTLLoader;
|
|
366
|
+
module.exports = exports.default;
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var THREE = _interopRequireWildcard(require("three"));
|
|
9
|
+
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); }
|
|
3
10
|
/**
|
|
4
11
|
* @author mrdoob / http://mrdoob.com/
|
|
5
12
|
*/
|
|
6
13
|
|
|
7
|
-
var THREE = window.THREE || require('three');
|
|
8
14
|
var OBJLoader;
|
|
9
15
|
OBJLoader = function OBJLoader(manager) {
|
|
10
16
|
this.manager = manager !== undefined ? manager : THREE.DefaultLoadingManager;
|
|
@@ -461,4 +467,5 @@ OBJLoader.prototype = {
|
|
|
461
467
|
return container;
|
|
462
468
|
}
|
|
463
469
|
};
|
|
464
|
-
|
|
470
|
+
var _default = exports["default"] = OBJLoader;
|
|
471
|
+
module.exports = exports.default;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = OrbitControls;
|
|
8
|
+
var THREE = _interopRequireWildcard(require("three"));
|
|
9
|
+
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); }
|
|
3
10
|
/**
|
|
4
11
|
* @author qiao / https://github.com/qiao
|
|
5
12
|
* @author mrdoob / http://mrdoob.com
|
|
@@ -15,9 +22,7 @@
|
|
|
15
22
|
// Zoom - middle mouse, or mousewheel / touch: two finger spread or squish
|
|
16
23
|
// Pan - right mouse, or arrow keys / touch: three finter swipe
|
|
17
24
|
|
|
18
|
-
|
|
19
|
-
var OrbitControls;
|
|
20
|
-
module.exports = OrbitControls = function OrbitControls(object, domElement) {
|
|
25
|
+
function OrbitControls(object, domElement) {
|
|
21
26
|
this.object = object;
|
|
22
27
|
this.domElement = domElement !== undefined ? domElement : document;
|
|
23
28
|
|
|
@@ -625,7 +630,7 @@ module.exports = OrbitControls = function OrbitControls(object, domElement) {
|
|
|
625
630
|
// force an update at start
|
|
626
631
|
|
|
627
632
|
this.update();
|
|
628
|
-
}
|
|
633
|
+
}
|
|
629
634
|
OrbitControls.prototype = Object.create(THREE.EventDispatcher.prototype);
|
|
630
635
|
OrbitControls.prototype.constructor = OrbitControls;
|
|
631
636
|
Object.defineProperties(OrbitControls.prototype, {
|
|
@@ -697,4 +702,5 @@ Object.defineProperties(OrbitControls.prototype, {
|
|
|
697
702
|
this.dampingFactor = value;
|
|
698
703
|
}
|
|
699
704
|
}
|
|
700
|
-
});
|
|
705
|
+
});
|
|
706
|
+
module.exports = exports.default;
|
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = PointerLockControls;
|
|
8
|
+
var THREE = _interopRequireWildcard(require("three"));
|
|
9
|
+
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); }
|
|
3
10
|
/**
|
|
4
11
|
* @author mrdoob / http://mrdoob.com/
|
|
12
|
+
* Converted to ESM
|
|
5
13
|
*/
|
|
6
14
|
|
|
7
|
-
|
|
8
|
-
var PointerLockControls;
|
|
9
|
-
module.exports = PointerLockControls = function PointerLockControls(camera) {
|
|
15
|
+
function PointerLockControls(camera) {
|
|
10
16
|
var scope = this;
|
|
11
17
|
camera.rotation.set(0, 0, 0);
|
|
12
18
|
var pitchObject = new THREE.Object3D();
|
|
@@ -17,14 +23,14 @@ module.exports = PointerLockControls = function PointerLockControls(camera) {
|
|
|
17
23
|
yawObject.position.y = 10;
|
|
18
24
|
yawObject.add(pitchObject);
|
|
19
25
|
var PI_2 = Math.PI / 2;
|
|
20
|
-
|
|
26
|
+
function onMouseMove(event) {
|
|
21
27
|
if (scope.enabled === false) return;
|
|
22
28
|
var movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0;
|
|
23
29
|
var movementY = event.movementY || event.mozMovementY || event.webkitMovementY || 0;
|
|
24
30
|
yawObject.rotation.y -= movementX * 0.002;
|
|
25
31
|
pitchObject.rotation.x -= movementY * 0.002;
|
|
26
32
|
pitchObject.rotation.x = Math.max(-PI_2, Math.min(PI_2, pitchObject.rotation.x));
|
|
27
|
-
}
|
|
33
|
+
}
|
|
28
34
|
this.dispose = function () {
|
|
29
35
|
document.removeEventListener('mousemove', onMouseMove, false);
|
|
30
36
|
};
|
|
@@ -35,7 +41,6 @@ module.exports = PointerLockControls = function PointerLockControls(camera) {
|
|
|
35
41
|
};
|
|
36
42
|
this.getDirection = function () {
|
|
37
43
|
// assumes the camera itself is not rotated
|
|
38
|
-
|
|
39
44
|
var direction = new THREE.Vector3(0, 0, -1);
|
|
40
45
|
var rotation = new THREE.Euler(0, 0, 0, 'YXZ');
|
|
41
46
|
return function (v) {
|
|
@@ -44,4 +49,5 @@ module.exports = PointerLockControls = function PointerLockControls(camera) {
|
|
|
44
49
|
return v;
|
|
45
50
|
};
|
|
46
51
|
}();
|
|
47
|
-
}
|
|
52
|
+
}
|
|
53
|
+
module.exports = exports.default;
|