kitchen-simulator 2.0.15 → 2.0.17
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/LiteRenderer.js +4 -47
- package/es/components/viewer2d/viewer2d.js +215 -148
- package/es/constants.js +7 -1
- package/es/devLiteRenderer.js +31 -2
- package/es/utils/isolate-event-handler.js +133 -64
- package/lib/LiteRenderer.js +4 -47
- package/lib/components/viewer2d/viewer2d.js +215 -148
- package/lib/constants.js +11 -5
- package/lib/devLiteRenderer.js +30 -1
- package/lib/utils/isolate-event-handler.js +132 -63
- package/package.json +1 -1
package/es/LiteRenderer.js
CHANGED
|
@@ -262,64 +262,21 @@ export default function LiteRenderer(props) {
|
|
|
262
262
|
return _ref.apply(this, arguments);
|
|
263
263
|
};
|
|
264
264
|
}();
|
|
265
|
-
var
|
|
265
|
+
var initCatalog = /*#__PURE__*/function () {
|
|
266
266
|
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
|
|
267
|
-
var molding, toeMoldingData, moldingData, promises;
|
|
268
267
|
return _regeneratorRuntime.wrap(function (_context2) {
|
|
269
268
|
while (1) switch (_context2.prev = _context2.next) {
|
|
270
269
|
case 0:
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
moldingData = {};
|
|
274
|
-
if (moldingData.name = TOE_KICK_MOLDING) toeMoldingData = moldingData;
|
|
275
|
-
promises = molding.map(function (child) {
|
|
276
|
-
return new Promise(function (resolve, reject) {
|
|
277
|
-
var url = child === null || child === void 0 ? void 0 : child.shape_svg;
|
|
278
|
-
if (!url) return resolve();
|
|
279
|
-
var loader = new SVGLoader();
|
|
280
|
-
loader.load(url, function (data) {
|
|
281
|
-
var _data$xml$viewBox$ani, _data$xml, _data$xml$viewBox$ani2, _data$xml2;
|
|
282
|
-
child.data = {
|
|
283
|
-
paths: data.paths,
|
|
284
|
-
svg_width: (_data$xml$viewBox$ani = (_data$xml = data.xml) === null || _data$xml === void 0 || (_data$xml = _data$xml.viewBox) === null || _data$xml === void 0 || (_data$xml = _data$xml.animVal) === null || _data$xml === void 0 ? void 0 : _data$xml.width) !== null && _data$xml$viewBox$ani !== void 0 ? _data$xml$viewBox$ani : 0,
|
|
285
|
-
svg_height: (_data$xml$viewBox$ani2 = (_data$xml2 = data.xml) === null || _data$xml2 === void 0 || (_data$xml2 = _data$xml2.viewBox) === null || _data$xml2 === void 0 || (_data$xml2 = _data$xml2.animVal) === null || _data$xml2 === void 0 ? void 0 : _data$xml2.height) !== null && _data$xml$viewBox$ani2 !== void 0 ? _data$xml$viewBox$ani2 : 0
|
|
286
|
-
};
|
|
287
|
-
resolve();
|
|
288
|
-
}, null, function (error) {
|
|
289
|
-
console.error(error);
|
|
290
|
-
reject(error);
|
|
291
|
-
});
|
|
292
|
-
});
|
|
293
|
-
});
|
|
294
|
-
return _context2.abrupt("return", Promise.all(promises));
|
|
270
|
+
_context2.next = 1;
|
|
271
|
+
return initMyCatalog();
|
|
295
272
|
case 1:
|
|
296
273
|
case "end":
|
|
297
274
|
return _context2.stop();
|
|
298
275
|
}
|
|
299
276
|
}, _callee2);
|
|
300
277
|
}));
|
|
301
|
-
return function loadMoldings() {
|
|
302
|
-
return _ref2.apply(this, arguments);
|
|
303
|
-
};
|
|
304
|
-
}();
|
|
305
|
-
var initCatalog = /*#__PURE__*/function () {
|
|
306
|
-
var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
|
|
307
|
-
return _regeneratorRuntime.wrap(function (_context3) {
|
|
308
|
-
while (1) switch (_context3.prev = _context3.next) {
|
|
309
|
-
case 0:
|
|
310
|
-
_context3.next = 1;
|
|
311
|
-
return initMyCatalog();
|
|
312
|
-
case 1:
|
|
313
|
-
_context3.next = 2;
|
|
314
|
-
return loadMoldings();
|
|
315
|
-
case 2:
|
|
316
|
-
case "end":
|
|
317
|
-
return _context3.stop();
|
|
318
|
-
}
|
|
319
|
-
}, _callee3);
|
|
320
|
-
}));
|
|
321
278
|
return function initCatalog() {
|
|
322
|
-
return
|
|
279
|
+
return _ref2.apply(this, arguments);
|
|
323
280
|
};
|
|
324
281
|
}();
|
|
325
282
|
initCatalog();
|
|
@@ -567,6 +567,7 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
567
567
|
// let evt = new Event('mousemove-planner-event');
|
|
568
568
|
// evt.viewerEvent = viewerEvent;
|
|
569
569
|
// document.dispatchEvent(evt);
|
|
570
|
+
var elementPrototype, internalType;
|
|
570
571
|
var _mapCursorPosition = mapCursorPosition(viewerEvent),
|
|
571
572
|
x = _mapCursorPosition.x,
|
|
572
573
|
y = _mapCursorPosition.y;
|
|
@@ -580,56 +581,168 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
580
581
|
y: y - sPoint.y
|
|
581
582
|
};
|
|
582
583
|
projectActions.selectAll(differs);
|
|
583
|
-
} else
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
584
|
+
} else {
|
|
585
|
+
switch (mode) {
|
|
586
|
+
case constants.MODE_DRAWING_LINE:
|
|
587
|
+
elementPrototype = 'lines';
|
|
588
|
+
internalType = INTERNAL_EVENT_DRAW_ELEMENT;
|
|
589
|
+
break;
|
|
590
|
+
case constants.MODE_DRAWING_HOLE:
|
|
591
|
+
elementPrototype = 'holes';
|
|
592
|
+
internalType = INTERNAL_EVENT_DRAW_ELEMENT;
|
|
593
|
+
break;
|
|
594
|
+
case constants.MODE_DRAWING_ITEM:
|
|
595
|
+
elementPrototype = 'items';
|
|
596
|
+
internalType = INTERNAL_EVENT_DRAW_ELEMENT;
|
|
597
|
+
break;
|
|
598
|
+
case constants.MODE_DRAGGING_HOLE:
|
|
599
|
+
elementPrototype = 'holes';
|
|
600
|
+
internalType = INTERNAL_EVENT_DRAG_ELEMENT;
|
|
601
|
+
break;
|
|
602
|
+
case constants.MODE_DRAGGING_LINE:
|
|
603
|
+
elementPrototype = 'lines';
|
|
604
|
+
internalType = INTERNAL_EVENT_DRAG_ELEMENT;
|
|
605
|
+
break;
|
|
606
|
+
case constants.MODE_DRAGGING_VERTEX:
|
|
607
|
+
elementPrototype = 'lines';
|
|
608
|
+
internalType = INTERNAL_EVENT_DRAG_ELEMENT;
|
|
609
|
+
break;
|
|
610
|
+
case constants.MODE_DRAGGING_ITEM:
|
|
611
|
+
elementPrototype = 'items';
|
|
612
|
+
internalType = INTERNAL_EVENT_DRAG_ELEMENT;
|
|
613
|
+
break;
|
|
614
|
+
case constants.MODE_ROTATING_ITEM:
|
|
615
|
+
elementPrototype = 'items';
|
|
616
|
+
internalType = INTERNAL_EVENT_ROTATE_ELEMENT;
|
|
617
|
+
break;
|
|
618
|
+
}
|
|
619
|
+
switch (mode) {
|
|
620
|
+
case constants.MODE_DRAWING_LINE:
|
|
621
|
+
// check whether the drawing line is started.
|
|
587
622
|
var lineID = state.getIn(['scene', 'layers', layerID, 'selected', 'lines']).first();
|
|
588
|
-
var _vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
589
623
|
var lines = state.getIn(['scene', 'layers', layerID, 'lines']).toJS();
|
|
590
624
|
var drawingLine = state.getIn(['scene', 'layers', layerID, 'lines', lineID]).toJS();
|
|
591
625
|
var tlines = [];
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
// let prevVertexID = state.getIn(['scene', 'layers', layerID, 'selected', 'vertices']).toJS()[0];
|
|
602
|
-
// let prevVertex = state.getIn(['scene', 'layers', layerID, 'vertices', prevVertexID]);
|
|
603
|
-
// let dx = Math.abs(x - prevVertex.x);
|
|
604
|
-
// let dy = Math.abs(y - prevVertex.y);
|
|
605
|
-
// if (dx > dy) y = prevVertex.y
|
|
606
|
-
// else x = prevVertex.x;
|
|
607
|
-
break;
|
|
608
|
-
case constants.MODE_DRAWING_HOLE:
|
|
609
|
-
holesActions.updateDrawingHole(layerID, x, y);
|
|
610
|
-
break;
|
|
611
|
-
case constants.MODE_DRAWING_ITEM:
|
|
612
|
-
var _layer = scene.layers.get(layerID);
|
|
613
|
-
var flag = false;
|
|
614
|
-
_layer.items.some(function (item) {
|
|
615
|
-
if (item.selected) {
|
|
616
|
-
item.counterTop.uri = _layer.counterTop.uri;
|
|
617
|
-
current_sel_obj_id = item.id;
|
|
618
|
-
flag = true;
|
|
626
|
+
if (drawStart || state.getIn(['scene', 'setLineAttributes'])) {
|
|
627
|
+
var _vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
628
|
+
setdrawStart(false);
|
|
629
|
+
// get the lines that have same points with drawing line.
|
|
630
|
+
getRelatedLines(tlines, drawingLine, _vertices, lines);
|
|
631
|
+
setRelatedLines(tlines);
|
|
632
|
+
linesActions.updateDrawingLine(x, y, tlines, state.snapMask);
|
|
633
|
+
} else {
|
|
634
|
+
linesActions.updateDrawingLine(x, y, relatedLines, state.snapMask);
|
|
619
635
|
}
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
636
|
+
|
|
637
|
+
// Blocked 90 degree snap.
|
|
638
|
+
// let prevVertexID = state.getIn(['scene', 'layers', layerID, 'selected', 'vertices']).toJS()[0];
|
|
639
|
+
// let prevVertex = state.getIn(['scene', 'layers', layerID, 'vertices', prevVertexID]);
|
|
640
|
+
// let dx = Math.abs(x - prevVertex.x);
|
|
641
|
+
// let dy = Math.abs(y - prevVertex.y);
|
|
642
|
+
// if (dx > dy) y = prevVertex.y
|
|
643
|
+
// else x = prevVertex.x;
|
|
644
|
+
break;
|
|
645
|
+
case constants.MODE_DRAWING_HOLE:
|
|
646
|
+
holesActions.updateDrawingHole(layerID, x, y);
|
|
647
|
+
break;
|
|
648
|
+
case constants.MODE_DRAWING_ITEM:
|
|
649
|
+
var _layer = scene.layers.get(layerID);
|
|
650
|
+
var flag = false;
|
|
651
|
+
_layer.items.some(function (item) {
|
|
652
|
+
if (item.selected) {
|
|
653
|
+
item.counterTop.uri = _layer.counterTop.uri;
|
|
654
|
+
current_sel_obj_id = item.id;
|
|
655
|
+
flag = true;
|
|
656
|
+
}
|
|
657
|
+
});
|
|
658
|
+
if (current_sel_obj_id === null || !flag) {
|
|
659
|
+
itemsActions.updateDrawingItem(layerID, x, y);
|
|
660
|
+
endPoint.x = x;
|
|
661
|
+
endPoint.y = y;
|
|
662
|
+
} else {
|
|
663
|
+
prepareSnap();
|
|
664
|
+
var _GeometryUtils$calcSn = GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, x, y, allArea),
|
|
665
|
+
nx = _GeometryUtils$calcSn.nx,
|
|
666
|
+
ny = _GeometryUtils$calcSn.ny,
|
|
667
|
+
rot = _GeometryUtils$calcSn.rot,
|
|
668
|
+
rotRad = _GeometryUtils$calcSn.rotRad;
|
|
669
|
+
var _val = {
|
|
670
|
+
pos: {
|
|
671
|
+
x: x,
|
|
672
|
+
y: y
|
|
673
|
+
},
|
|
674
|
+
rotRad: rotRad,
|
|
675
|
+
size: allItemRect.cur && allItemRect.cur.size,
|
|
676
|
+
layoutpos: allItemRect.cur && allItemRect.cur.layoutpos,
|
|
677
|
+
is_corner: allItemRect.cur && allItemRect.cur.is_corner
|
|
678
|
+
};
|
|
679
|
+
var _GeometryUtils$getAll = GeometryUtils.getAllHoleRect(scene, _val),
|
|
680
|
+
_isSect = _GeometryUtils$getAll.isSect,
|
|
681
|
+
_snap = _GeometryUtils$getAll.snap;
|
|
682
|
+
if (!isEmpty(_snap) && _isSect) {
|
|
683
|
+
if (_snap.length == 1) _val.pos = {
|
|
684
|
+
x: _snap[0].x,
|
|
685
|
+
y: _snap[0].y
|
|
686
|
+
};else {
|
|
687
|
+
if ((_snap[0].x - x) * (_snap[0].x - x) + (_snap[0].y - y) * (_snap[0].y - y) < (_snap[1].x - x) * (_snap[1].x - x) + (_snap[1].y - y) * (_snap[1].y - y)) _val.pos = {
|
|
688
|
+
x: _snap[0].x,
|
|
689
|
+
y: _snap[0].y
|
|
690
|
+
};else _val.pos = {
|
|
691
|
+
x: _snap[1].x,
|
|
692
|
+
y: _snap[1].y
|
|
693
|
+
};
|
|
694
|
+
}
|
|
695
|
+
var interSect = GeometryUtils.validInterSect(allItemRect.others, _val);
|
|
696
|
+
if (interSect) {
|
|
697
|
+
nx = _val.pos.x;
|
|
698
|
+
ny = _val.pos.y;
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
_val.pos = {
|
|
702
|
+
x: nx,
|
|
703
|
+
y: ny
|
|
704
|
+
};
|
|
705
|
+
var _isrectSect = GeometryUtils.validInterSect(allItemRect.others, _val);
|
|
706
|
+
if (_isrectSect && _isSect) {
|
|
707
|
+
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
708
|
+
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
709
|
+
endPoint.x = nx;
|
|
710
|
+
endPoint.y = ny;
|
|
711
|
+
}
|
|
712
|
+
if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('cabinet')) {
|
|
713
|
+
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
714
|
+
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
715
|
+
endPoint.x = nx;
|
|
716
|
+
endPoint.y = ny;
|
|
717
|
+
}
|
|
718
|
+
if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Hood') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Range') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top')) {
|
|
719
|
+
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
720
|
+
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
721
|
+
endPoint.x = nx;
|
|
722
|
+
endPoint.y = ny;
|
|
723
|
+
}
|
|
724
|
+
}
|
|
725
|
+
break;
|
|
726
|
+
case constants.MODE_DRAGGING_HOLE:
|
|
727
|
+
holesActions.updateDraggingHole(x, y);
|
|
728
|
+
break;
|
|
729
|
+
case constants.MODE_DRAGGING_LINE:
|
|
730
|
+
linesActions.updateDraggingLine(x, y, relatedLines, state.snapMask);
|
|
731
|
+
break;
|
|
732
|
+
case constants.MODE_DRAGGING_VERTEX:
|
|
733
|
+
var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
734
|
+
getConnectedLines();
|
|
735
|
+
var result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');
|
|
736
|
+
verticesActions.updateDraggingVertex(result.x, result.y, state.snapMask);
|
|
737
|
+
break;
|
|
738
|
+
case constants.MODE_DRAGGING_ITEM:
|
|
626
739
|
prepareSnap();
|
|
627
|
-
var _GeometryUtils$
|
|
628
|
-
nx = _GeometryUtils$
|
|
629
|
-
ny = _GeometryUtils$
|
|
630
|
-
rot = _GeometryUtils$
|
|
631
|
-
rotRad = _GeometryUtils$
|
|
632
|
-
var
|
|
740
|
+
var _GeometryUtils$calcSn2 = GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, x, y, allArea),
|
|
741
|
+
nx = _GeometryUtils$calcSn2.nx,
|
|
742
|
+
ny = _GeometryUtils$calcSn2.ny,
|
|
743
|
+
rot = _GeometryUtils$calcSn2.rot,
|
|
744
|
+
rotRad = _GeometryUtils$calcSn2.rotRad;
|
|
745
|
+
var val = {
|
|
633
746
|
pos: {
|
|
634
747
|
x: x,
|
|
635
748
|
y: y
|
|
@@ -639,125 +752,58 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
639
752
|
layoutpos: allItemRect.cur && allItemRect.cur.layoutpos,
|
|
640
753
|
is_corner: allItemRect.cur && allItemRect.cur.is_corner
|
|
641
754
|
};
|
|
642
|
-
var _GeometryUtils$
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
if (!isEmpty(
|
|
646
|
-
if (
|
|
647
|
-
x:
|
|
648
|
-
y:
|
|
649
|
-
};else {
|
|
650
|
-
if ((
|
|
651
|
-
x:
|
|
652
|
-
y:
|
|
653
|
-
};else
|
|
654
|
-
x:
|
|
655
|
-
y:
|
|
755
|
+
var _GeometryUtils$getAll2 = GeometryUtils.getAllHoleRect(scene, val),
|
|
756
|
+
isSect = _GeometryUtils$getAll2.isSect,
|
|
757
|
+
snap = _GeometryUtils$getAll2.snap;
|
|
758
|
+
if (!isEmpty(snap) && isSect) {
|
|
759
|
+
if (snap.length == 1) val.pos = {
|
|
760
|
+
x: snap[0].x,
|
|
761
|
+
y: snap[0].y
|
|
762
|
+
};else if (snap.length == 2) {
|
|
763
|
+
if ((snap[0].x - x) * (snap[0].x - x) + (snap[0].y - y) * (snap[0].y - y) < (snap[1].x - x) * (snap[1].x - x) + (snap[1].y - y) * (snap[1].y - y)) val.pos = {
|
|
764
|
+
x: snap[0].x,
|
|
765
|
+
y: snap[0].y
|
|
766
|
+
};else val.pos = {
|
|
767
|
+
x: snap[1].x,
|
|
768
|
+
y: snap[1].y
|
|
656
769
|
};
|
|
657
770
|
}
|
|
658
|
-
var
|
|
659
|
-
if (
|
|
660
|
-
nx =
|
|
661
|
-
ny =
|
|
771
|
+
var _interSect = GeometryUtils.validInterSect(allItemRect.others, val);
|
|
772
|
+
if (_interSect) {
|
|
773
|
+
nx = val.pos.x;
|
|
774
|
+
ny = val.pos.y;
|
|
662
775
|
}
|
|
663
776
|
}
|
|
664
|
-
|
|
777
|
+
val.pos = {
|
|
665
778
|
x: nx,
|
|
666
779
|
y: ny
|
|
667
780
|
};
|
|
668
|
-
var
|
|
669
|
-
if (
|
|
781
|
+
var isrectSect = GeometryUtils.validInterSect(allItemRect.others, val);
|
|
782
|
+
if (isrectSect && isSect) {
|
|
670
783
|
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
671
784
|
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
672
|
-
endPoint.x = nx;
|
|
673
|
-
endPoint.y = ny;
|
|
674
785
|
}
|
|
675
|
-
if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('
|
|
786
|
+
if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cabinet')) {
|
|
676
787
|
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
677
788
|
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
678
|
-
endPoint.x = nx;
|
|
679
|
-
endPoint.y = ny;
|
|
680
789
|
}
|
|
681
790
|
if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Hood') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Range') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top')) {
|
|
682
791
|
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
683
792
|
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
684
|
-
endPoint.x = nx;
|
|
685
|
-
endPoint.y = ny;
|
|
686
|
-
}
|
|
687
|
-
}
|
|
688
|
-
break;
|
|
689
|
-
case constants.MODE_DRAGGING_HOLE:
|
|
690
|
-
holesActions.updateDraggingHole(x, y);
|
|
691
|
-
break;
|
|
692
|
-
case constants.MODE_DRAGGING_LINE:
|
|
693
|
-
linesActions.updateDraggingLine(x, y, relatedLines, state.snapMask);
|
|
694
|
-
break;
|
|
695
|
-
case constants.MODE_DRAGGING_VERTEX:
|
|
696
|
-
var vertices = state.getIn(['scene', 'layers', layerID, 'vertices']).toJS();
|
|
697
|
-
getConnectedLines();
|
|
698
|
-
var result = getEndPoint(vertices, x, y, 'DRAGGING_VERTEX');
|
|
699
|
-
verticesActions.updateDraggingVertex(result.x, result.y, state.snapMask);
|
|
700
|
-
break;
|
|
701
|
-
case constants.MODE_DRAGGING_ITEM:
|
|
702
|
-
prepareSnap();
|
|
703
|
-
var _GeometryUtils$calcSn2 = GeometryUtils.calcSnap(allItemRect, allItemSnap, allLineRects, allLineSnap, allRect, x, y, allArea),
|
|
704
|
-
nx = _GeometryUtils$calcSn2.nx,
|
|
705
|
-
ny = _GeometryUtils$calcSn2.ny,
|
|
706
|
-
rot = _GeometryUtils$calcSn2.rot,
|
|
707
|
-
rotRad = _GeometryUtils$calcSn2.rotRad;
|
|
708
|
-
var val = {
|
|
709
|
-
pos: {
|
|
710
|
-
x: x,
|
|
711
|
-
y: y
|
|
712
|
-
},
|
|
713
|
-
rotRad: rotRad,
|
|
714
|
-
size: allItemRect.cur && allItemRect.cur.size,
|
|
715
|
-
layoutpos: allItemRect.cur && allItemRect.cur.layoutpos,
|
|
716
|
-
is_corner: allItemRect.cur && allItemRect.cur.is_corner
|
|
717
|
-
};
|
|
718
|
-
var _GeometryUtils$getAll2 = GeometryUtils.getAllHoleRect(scene, val),
|
|
719
|
-
isSect = _GeometryUtils$getAll2.isSect,
|
|
720
|
-
snap = _GeometryUtils$getAll2.snap;
|
|
721
|
-
if (!isEmpty(snap) && isSect) {
|
|
722
|
-
if (snap.length == 1) val.pos = {
|
|
723
|
-
x: snap[0].x,
|
|
724
|
-
y: snap[0].y
|
|
725
|
-
};else if (snap.length == 2) {
|
|
726
|
-
if ((snap[0].x - x) * (snap[0].x - x) + (snap[0].y - y) * (snap[0].y - y) < (snap[1].x - x) * (snap[1].x - x) + (snap[1].y - y) * (snap[1].y - y)) val.pos = {
|
|
727
|
-
x: snap[0].x,
|
|
728
|
-
y: snap[0].y
|
|
729
|
-
};else val.pos = {
|
|
730
|
-
x: snap[1].x,
|
|
731
|
-
y: snap[1].y
|
|
732
|
-
};
|
|
733
|
-
}
|
|
734
|
-
var _interSect = GeometryUtils.validInterSect(allItemRect.others, val);
|
|
735
|
-
if (_interSect) {
|
|
736
|
-
nx = val.pos.x;
|
|
737
|
-
ny = val.pos.y;
|
|
738
793
|
}
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
x
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
}
|
|
753
|
-
if (allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Hood') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Range') || allItemRect.cur && allItemRect.cur.itemInfo.name.includes('Cook Top')) {
|
|
754
|
-
itemsActions.updateDraggingItemChanged(nx, ny, layerID, current_sel_obj_id);
|
|
755
|
-
itemsActions.updateRotatingItemChanged(rot, layerID, current_sel_obj_id);
|
|
756
|
-
}
|
|
757
|
-
break;
|
|
758
|
-
case constants.MODE_ROTATING_ITEM:
|
|
759
|
-
itemsActions.updateRotatingItem(x, y);
|
|
760
|
-
break;
|
|
794
|
+
break;
|
|
795
|
+
case constants.MODE_ROTATING_ITEM:
|
|
796
|
+
itemsActions.updateRotatingItem(x, y);
|
|
797
|
+
break;
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
if (!isEmpty(elementPrototype)) {
|
|
801
|
+
var elementID = state.getIn(['scene', 'layers', layerID, 'selected', elementPrototype]).first();
|
|
802
|
+
var currentObject = state.getIn(['scene', 'layers', layerID, elementPrototype, elementID]);
|
|
803
|
+
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
804
|
+
type: internalType,
|
|
805
|
+
value: currentObject === null || currentObject === void 0 ? void 0 : currentObject.toJS()
|
|
806
|
+
});
|
|
761
807
|
}
|
|
762
808
|
viewerEvent.originalEvent.stopPropagation();
|
|
763
809
|
};
|
|
@@ -779,6 +825,10 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
779
825
|
return;
|
|
780
826
|
}
|
|
781
827
|
}
|
|
828
|
+
if (mode === constants.MODE_DRAWING_ITEM) {
|
|
829
|
+
endPoint.x = x;
|
|
830
|
+
endPoint.y = y;
|
|
831
|
+
}
|
|
782
832
|
if (mode === constants.MODE_IDLE) {
|
|
783
833
|
var elementData = extractElementData(event.target);
|
|
784
834
|
if (!elementData) return;
|
|
@@ -818,9 +868,22 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
818
868
|
break;
|
|
819
869
|
}
|
|
820
870
|
var currentObject = state.getIn(['scene', 'layers', layerID, elementData.prototype, elementData.id]);
|
|
871
|
+
if (elementData.prototype === 'lines' && currentObject) {
|
|
872
|
+
// caculating length of selected line//
|
|
873
|
+
var v_a = layer.vertices.get(currentObject.vertices.get(0));
|
|
874
|
+
var v_b = layer.vertices.get(currentObject.vertices.get(1));
|
|
875
|
+
var distance = GeometryUtils.pointsDistance(v_a.x, v_a.y, v_b.x, v_b.y);
|
|
876
|
+
var _length = convert(distance).from('cm').to('in');
|
|
877
|
+
elementData.length = _length;
|
|
878
|
+
//////////////////////////////////////
|
|
879
|
+
}
|
|
880
|
+
// Adding length field to internal event payload when selected lines
|
|
881
|
+
var payloadValue = (elementData === null || elementData === void 0 ? void 0 : elementData.prototype) === 'lines' ? _objectSpread(_objectSpread({}, currentObject === null || currentObject === void 0 ? void 0 : currentObject.toJS()), {}, {
|
|
882
|
+
length: elementData === null || elementData === void 0 ? void 0 : elementData.length
|
|
883
|
+
}) : currentObject === null || currentObject === void 0 ? void 0 : currentObject.toJS();
|
|
821
884
|
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
822
885
|
type: INTERNAL_EVENT_SELECT_ELEMENT,
|
|
823
|
-
value:
|
|
886
|
+
value: payloadValue
|
|
824
887
|
});
|
|
825
888
|
} else {
|
|
826
889
|
sPoint.x = x;
|
|
@@ -944,6 +1007,10 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
944
1007
|
if (document.getElementById('setting_dialog')) {
|
|
945
1008
|
document.getElementById('setting_dialog').style.display = 'none';
|
|
946
1009
|
}
|
|
1010
|
+
onInternalEvent === null || onInternalEvent === void 0 || onInternalEvent({
|
|
1011
|
+
type: constants.INTERNAL_EVENT_REPLACE_CABINET,
|
|
1012
|
+
value: state.getIn(['scene', 'layers', layerID, 'items', elementData.id]).toJS()
|
|
1013
|
+
});
|
|
947
1014
|
itemsActions.selectItem(elementData.layer, elementData.id);
|
|
948
1015
|
replaceCabinet(true);
|
|
949
1016
|
break;
|
|
@@ -1251,7 +1318,7 @@ export default function Viewer2D(_ref, _ref2) {
|
|
|
1251
1318
|
var onChangeValue = function onChangeValue(value) {
|
|
1252
1319
|
if (sFlag) return;
|
|
1253
1320
|
var _zoomValue = parseInt((value.a - 0.5) / constants.ZOOM_VARIABLE);
|
|
1254
|
-
if (_zoomValue >
|
|
1321
|
+
if (_zoomValue > constants.MAX_ZOOM_IN_SCALE) return;
|
|
1255
1322
|
if (_zoomValue < 0 || Number.isNaN(_zoomValue)) return;
|
|
1256
1323
|
if (rulerEdit !== null && value.startX && value.startY || value.lastAction === 'zoom') {
|
|
1257
1324
|
var _rulerEdit = document.getElementById('ruler_numberInput'),
|
package/es/constants.js
CHANGED
|
@@ -693,6 +693,10 @@ export var ATT_HOLE_OFFSET_B = 'offsetB';
|
|
|
693
693
|
export var PROP_FLIP_DOOR_HANDLE = 'flip_doorhandle';
|
|
694
694
|
export var PROP_OPEN_DOORS = 'open_doors';
|
|
695
695
|
export var PROP_ALTITUDE = 'altitude';
|
|
696
|
+
export var PROP_RESIZE_WIDTH = 'width';
|
|
697
|
+
export var PROP_RESIZE_HEIGHT = 'height';
|
|
698
|
+
export var PROP_RESIZE_DEPTH = 'depth';
|
|
699
|
+
export var MAX_ZOOM_IN_SCALE = Infinity;
|
|
696
700
|
|
|
697
701
|
// external event type
|
|
698
702
|
export var EXTERNAL_EVENT_SYNC_SCENE = 'EXTERNAL_EVENT_SYNC_SCENE'; // Host request the scene data to 3DTool for sync : Host -> 3DTool
|
|
@@ -723,10 +727,12 @@ export var EXTERNAL_EVENT_DUPLICATE_ELEMENT = 'EXTERNAL_EVENT_DUPLICATE_ELEMENT'
|
|
|
723
727
|
export var EXTERNAL_EVENT_DELETE_ELEMENT = 'EXTERNAL_EVENT_DELETE_ELEMENT';
|
|
724
728
|
export var EXTERNAL_EVENT_UPDATE_ATTRIBUTE = 'EXTERNAL_EVENT_UPDATE_ATTRIBUTE'; // update the element's attributes (distance, rotation...) in the property window
|
|
725
729
|
export var EXTERNAL_EVENT_UPDATE_PROPERTY = 'EXTERNAL_EVENT_UPDATE_PROPERTY'; // update the element's property (flip_doorhandle, open_doors...) in the property window
|
|
730
|
+
export var EXTERNAL_EVENT_REPLACE_CABINET = 'EXTERNAL_EVENT_REPLACE_CABINET';
|
|
726
731
|
|
|
727
732
|
// internal event type
|
|
728
733
|
export var INTERNAL_EVENT_UNSELECT_ALL = 'INTERNAL_EVENT_UNSELECT_ALL';
|
|
729
734
|
export var INTERNAL_EVENT_SELECT_ELEMENT = 'INTERNAL_EVENT_SELECT_ELEMENT';
|
|
730
735
|
export var INTERNAL_EVENT_DRAG_ELEMENT = 'INTERNAL_EVENT_DRAG_ELEMENT';
|
|
731
736
|
export var INTERNAL_EVENT_DRAW_ELEMENT = 'INTERNAL_EVENT_DRAW_ELEMENT';
|
|
732
|
-
export var INTERNAL_EVENT_ROTATE_ELEMENT = 'INTERNAL_EVENT_ROTATE_ELEMENT';
|
|
737
|
+
export var INTERNAL_EVENT_ROTATE_ELEMENT = 'INTERNAL_EVENT_ROTATE_ELEMENT';
|
|
738
|
+
export var INTERNAL_EVENT_REPLACE_CABINET = 'INTERNAL_EVENT_REPLACE_CABINET';
|
package/es/devLiteRenderer.js
CHANGED
|
@@ -12,10 +12,11 @@ import doorStylePaylod2 from "./mocks/doorStylePayload2.json";
|
|
|
12
12
|
import itemCDSPayload from "./mocks/itemCDSPayload.json";
|
|
13
13
|
import rectangleData from "./mocks/rectangleShape.json";
|
|
14
14
|
import moldingPayload from "./mocks/moldingPayload.json";
|
|
15
|
+
import replaceCabinetPayload from "./mocks/replaceCabinetPayload.json";
|
|
15
16
|
import ReactDOM from 'react-dom';
|
|
16
17
|
import LiteRenderer from "./LiteRenderer";
|
|
17
18
|
import { Button } from 'antd';
|
|
18
|
-
import { LEFT, RIGHT, TOP, BOTTOM, EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_SET_INITIAL_DATA, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_PROJECT_SETTING, PROJECT_SETTING_OPTION, EXTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, BACK_DIST_ANG, ATT_ITEM_POS, ATT_ITEM_ROTATION, ATT_LINE_LENGTH, EXTERNAL_EVENT_UPDATE_PROPERTY, PROP_FLIP_DOOR_HANDLE, PROP_OPEN_DOORS, EXTERNAL_EVENT_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_ADD_HOLE, HOLE_NAMES, EXTERNAL_EVENT_CENTERING_2D, PROP_ALTITUDE, EXTERNAL_EVENT_DUPLICATE_ELEMENT, ELEMENT_ITEM, EXTERNAL_EVENT_DELETE_ELEMENT } from "./constants";
|
|
19
|
+
import { LEFT, RIGHT, TOP, BOTTOM, EXTERNAL_EVENT_ADD_ITEM, EXTERNAL_EVENT_ADD_WALL, EXTERNAL_EVENT_TOGGLE_TO_3D, EXTERNAL_EVENT_TOGGLE_TO_2D, EXTERNAL_EVENT_TOGGLE_TO_ELEVATION, EXTERNAL_EVENT_MOVE_PAN, EXTERNAL_EVENT_NEW_PROJECT, EXTERNAL_EVENT_CHANGE_DOORSTYLE, EXTERNAL_EVENT_SET_INITIAL_DATA, EXTERNAL_EVENT_ADD_ROOM_SHAPE, EXTERNAL_EVENT_ZOOM_IN, EXTERNAL_EVENT_ZOOM_OUT, EXTERNAL_EVENT_UNDO, EXTERNAL_EVENT_REDO, EXTERNAL_EVENT_SET_MOLDING, EXTERNAL_EVENT_PROJECT_SETTING, PROJECT_SETTING_OPTION, EXTERNAL_EVENT_SYNC_SCENE, EXTERNAL_EVENT_UPDATE_ATTRIBUTE, BACK_DIST_ANG, ATT_ITEM_POS, ATT_ITEM_ROTATION, ATT_LINE_LENGTH, EXTERNAL_EVENT_UPDATE_PROPERTY, PROP_FLIP_DOOR_HANDLE, PROP_OPEN_DOORS, EXTERNAL_EVENT_LOAD_PROJECT, INTERNAL_EVENT_ITEMS_CATALOG, EXTERNAL_EVENT_ADD_HOLE, HOLE_NAMES, EXTERNAL_EVENT_CENTERING_2D, PROP_ALTITUDE, EXTERNAL_EVENT_DUPLICATE_ELEMENT, ELEMENT_ITEM, EXTERNAL_EVENT_DELETE_ELEMENT, PROP_RESIZE_WIDTH, EXTERNAL_EVENT_REPLACE_CABINET } from "./constants";
|
|
19
20
|
|
|
20
21
|
// --- renderer props ---
|
|
21
22
|
var options = {
|
|
@@ -458,7 +459,35 @@ function WorkSpace(props) {
|
|
|
458
459
|
};
|
|
459
460
|
setExternalEvent(evt);
|
|
460
461
|
}
|
|
461
|
-
}, "Centering Viewer2D")
|
|
462
|
+
}, "Centering Viewer2D"), /*#__PURE__*/React.createElement(Button, {
|
|
463
|
+
actionType: "danger",
|
|
464
|
+
onClick: function onClick() {
|
|
465
|
+
var evt = {
|
|
466
|
+
type: EXTERNAL_EVENT_UPDATE_PROPERTY,
|
|
467
|
+
payload: {
|
|
468
|
+
propertyName: PROP_RESIZE_WIDTH,
|
|
469
|
+
// this property should be Map
|
|
470
|
+
value: new Map({
|
|
471
|
+
length: 68.57999780544007,
|
|
472
|
+
// cm
|
|
473
|
+
_length: 27,
|
|
474
|
+
// inch
|
|
475
|
+
_unit: 'in'
|
|
476
|
+
})
|
|
477
|
+
}
|
|
478
|
+
};
|
|
479
|
+
setExternalEvent(evt);
|
|
480
|
+
}
|
|
481
|
+
}, "Change width to 27\""), /*#__PURE__*/React.createElement(Button, {
|
|
482
|
+
actionType: "danger",
|
|
483
|
+
onClick: function onClick() {
|
|
484
|
+
var evt = {
|
|
485
|
+
type: EXTERNAL_EVENT_REPLACE_CABINET,
|
|
486
|
+
payload: replaceCabinetPayload // B12 Data
|
|
487
|
+
};
|
|
488
|
+
setExternalEvent(evt);
|
|
489
|
+
}
|
|
490
|
+
}, "Replace cabinet to B12")), /*#__PURE__*/React.createElement(LiteRenderer, {
|
|
462
491
|
width: props.width,
|
|
463
492
|
height: props.height,
|
|
464
493
|
configData: mockProps.configData,
|