kitchen-simulator 3.14.0 → 3.16.0
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/assets/gltf/door_sliding.bin +0 -0
- package/es/class/project.js +79 -76
- package/es/components/viewer2d/ruler.js +2 -1
- package/es/components/viewer3d/scene-creator.js +12 -7
- package/es/components/viewer3d/viewer3d.js +1 -0
- package/es/constants.js +1 -0
- package/es/devLiteRenderer.js +98 -0
- package/es/index.js +1 -1
- package/es/utils/isolate-event-handler.js +17 -29
- package/lib/assets/gltf/door_sliding.bin +0 -0
- package/lib/class/project.js +79 -76
- package/lib/components/viewer2d/ruler.js +2 -1
- package/lib/components/viewer3d/scene-creator.js +12 -7
- package/lib/components/viewer3d/viewer3d.js +1 -0
- package/lib/constants.js +1 -0
- package/lib/devLiteRenderer.js +98 -0
- package/lib/index.js +1 -1
- package/lib/utils/isolate-event-handler.js +17 -29
- package/package.json +1 -1
|
Binary file
|
package/es/class/project.js
CHANGED
|
@@ -838,85 +838,88 @@ var Project = /*#__PURE__*/function () {
|
|
|
838
838
|
state = state.merge({
|
|
839
839
|
catalog: catalog
|
|
840
840
|
});
|
|
841
|
-
var _viewer2D = state.viewer2D;
|
|
842
|
-
var viewer = _viewer2D.toJS();
|
|
843
|
-
width = convert(width).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
|
|
844
|
-
height = convert(height).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
|
|
845
|
-
var layerID = state.scene.selectedLayer;
|
|
846
841
|
state = Item.setInitialDoorStyle(state, doorStyle).updatedState;
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
842
|
+
var layerID = state.scene.selectedLayer;
|
|
843
|
+
if (roomShapeType !== constants.ROOM_SHAPE_TYPE.CUSTOM && !isEmpty(width) && !isEmpty(height) && width !== 0 && height !== 0) {
|
|
844
|
+
var _viewer2D = state.viewer2D;
|
|
845
|
+
var viewer = _viewer2D.toJS();
|
|
846
|
+
if (isEmpty(viewer)) return {
|
|
847
|
+
updatedState: state
|
|
848
|
+
};
|
|
849
|
+
width = convert(width).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
|
|
850
|
+
height = convert(height).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
|
|
851
|
+
var halfWidth = width / 2;
|
|
852
|
+
var halfHeight = height / 2;
|
|
853
|
+
var viewerWidth = viewer.SVGWidth;
|
|
854
|
+
var viewerHeight = viewer.SVGHeight;
|
|
855
|
+
var centerPos = {
|
|
856
|
+
x: viewerWidth / 2,
|
|
857
|
+
y: viewerHeight / 2
|
|
858
|
+
};
|
|
859
|
+
var vtLB = {
|
|
860
|
+
x: centerPos.x - halfWidth,
|
|
861
|
+
y: centerPos.y - halfHeight
|
|
862
|
+
};
|
|
863
|
+
var vtRB = {
|
|
864
|
+
x: centerPos.x + halfWidth,
|
|
865
|
+
y: centerPos.y - halfHeight
|
|
866
|
+
};
|
|
867
|
+
var vtRT = {
|
|
868
|
+
x: centerPos.x + halfWidth,
|
|
869
|
+
y: centerPos.y + halfHeight
|
|
870
|
+
};
|
|
871
|
+
var vtLT = {
|
|
872
|
+
x: centerPos.x - halfWidth,
|
|
873
|
+
y: centerPos.y + halfHeight
|
|
874
|
+
};
|
|
875
|
+
var vertices = [];
|
|
876
|
+
switch (roomShapeType) {
|
|
877
|
+
case 'rectangle':
|
|
878
|
+
vertices = [vtLB, vtLT, vtRT, vtRB];
|
|
879
|
+
break;
|
|
880
|
+
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_BOTTOM:
|
|
881
|
+
vertices = [vtLB, vtRB, vtRT];
|
|
882
|
+
break;
|
|
883
|
+
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_TOP:
|
|
884
|
+
vertices = [vtRB, vtRT, vtLT];
|
|
885
|
+
break;
|
|
886
|
+
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_TOP:
|
|
887
|
+
vertices = [vtRT, vtLT, vtLB];
|
|
888
|
+
break;
|
|
889
|
+
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_BOTTOM:
|
|
890
|
+
vertices = [vtLT, vtLB, vtRB];
|
|
891
|
+
break;
|
|
892
|
+
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_LEFT_TOP_RIGHT:
|
|
893
|
+
vertices = [vtRB, vtRT, vtLT, vtLB];
|
|
894
|
+
break;
|
|
895
|
+
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_TOP_RIGHT_BOTTOM:
|
|
896
|
+
vertices = [vtLB, vtRB, vtRT, vtLT];
|
|
897
|
+
break;
|
|
898
|
+
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_RIGHT_BOTTOM_LEFT:
|
|
899
|
+
vertices = [vtLT, vtLB, vtRB, vtRT];
|
|
900
|
+
break;
|
|
901
|
+
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_BOTTOM_LEFT_TOP:
|
|
902
|
+
vertices = [vtRT, vtLT, vtLB, vtRB];
|
|
903
|
+
break;
|
|
904
|
+
}
|
|
905
|
+
for (var i = 0; i < vertices.length - 1; i++) {
|
|
906
|
+
state = Line.create(state, layerID, 'wall', vertices[i].x, vertices[i].y, vertices[i + 1].x, vertices[i + 1].y).updatedState;
|
|
907
|
+
}
|
|
908
|
+
if (roomShapeType === constants.ROOM_SHAPE_TYPE.RECTANGLE) {
|
|
909
|
+
state = Line.create(state, layerID, 'wall', vertices[vertices.length - 1].x, vertices[vertices.length - 1].y, vertices[0].x, vertices[0].y).updatedState;
|
|
910
|
+
}
|
|
911
|
+
var layer = state.getIn(['scene', 'layers', layerID]);
|
|
912
|
+
var lines = layer.getIn(['lines']).toJS();
|
|
913
|
+
var drawingInfo = {};
|
|
914
|
+
var lineKey = Object.keys(lines);
|
|
915
|
+
for (var _i = 0; _i < lineKey.length; _i++) {
|
|
916
|
+
if (!isEmpty(lineKey)) {
|
|
917
|
+
drawingInfo.drawingLine = layer.getIn(['lines', lineKey[_i]]);
|
|
918
|
+
}
|
|
919
|
+
state = Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
|
|
917
920
|
}
|
|
918
|
-
state = Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
|
|
919
921
|
}
|
|
922
|
+
|
|
920
923
|
// copy keeped measurement unit
|
|
921
924
|
state = state.setIn(['scene', 'layers', layerID, 'unit'], layerUnit);
|
|
922
925
|
state = state.setIn(['scene', 'layers', layerID, 'ceilHeight'], ceilHeight);
|
|
@@ -32,6 +32,7 @@ export default function Ruler(_ref) {
|
|
|
32
32
|
transform = _ref.transform,
|
|
33
33
|
style = _ref.style;
|
|
34
34
|
var distanceText = convert(length).from(unit).to(rulerUnit).toFixed(0);
|
|
35
|
+
distanceText = (Math.round(convert(distanceText).from('in').to(layer.unit) * 100) / 100).toFixed(0);
|
|
35
36
|
var textLength = (distanceText.length + layer.unit.length) * 9;
|
|
36
37
|
return /*#__PURE__*/React.createElement("g", {
|
|
37
38
|
transform: transform
|
|
@@ -52,7 +53,7 @@ export default function Ruler(_ref) {
|
|
|
52
53
|
transform: "scale(1, -1)",
|
|
53
54
|
style: STYLE_TEXT,
|
|
54
55
|
fill: TEXT_COLOR_NEUTRAL_7
|
|
55
|
-
},
|
|
56
|
+
}, distanceText, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/React.createElement("line", {
|
|
56
57
|
x1: style === STYLE_ROOM_SHAPE ? 0 : 4,
|
|
57
58
|
y1: "0",
|
|
58
59
|
x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2,
|
|
@@ -266,7 +266,7 @@ export function updateScene(planData, sceneData, oldSceneData, diffArray, action
|
|
|
266
266
|
* Every 'doorStyle' change has a 'door_style_id' change.
|
|
267
267
|
* So, if door_style_id changes, it indicates 'doorStyle' change.
|
|
268
268
|
*/
|
|
269
|
-
if (['id'].includes(path[path.length - 1])) isSettingDoorStyle = true;
|
|
269
|
+
if (path[1] === 'layers' && path[3] === 'molding' || path[path.length - 2] === 'doorStyle' && path[path.length - 1] === 'id' || ['id'].includes(path[path.length - 1])) isSettingDoorStyle = true;
|
|
270
270
|
|
|
271
271
|
// If there are any molding change of layer
|
|
272
272
|
if (path[1] === 'layers' && path[3] === 'molding') isUpdateMolding = true;
|
|
@@ -951,9 +951,9 @@ function getLineDistance(obj, layer, isCalcWall, index) {
|
|
|
951
951
|
obj.geometry.attributes.position.needsUpdate = true;
|
|
952
952
|
obj.geometry.computeBoundingSphere();
|
|
953
953
|
obj.geometry.computeBoundingBox();
|
|
954
|
-
var dist =
|
|
954
|
+
var dist = convert(intersects[i].distance).from('cm').to('in');
|
|
955
955
|
if (dist > 3) {
|
|
956
|
-
var _canvas =
|
|
956
|
+
var _canvas = getDistanceCanvas(dist, layer);
|
|
957
957
|
var wid = _canvas.width / window.innerWidth * 30;
|
|
958
958
|
var hei = _canvas.height / window.innerHeight * 30;
|
|
959
959
|
var texture = new Three.Texture(_canvas);
|
|
@@ -1075,7 +1075,7 @@ function getLineDistance(obj, layer, isCalcWall, index) {
|
|
|
1075
1075
|
obj.geometry.attributes.position.needsUpdate = true;
|
|
1076
1076
|
var _dist = formatNumber(distance, DECIMAL_PLACES_2);
|
|
1077
1077
|
if (_dist > 3) {
|
|
1078
|
-
var _canvas2 =
|
|
1078
|
+
var _canvas2 = getDistanceCanvas(_dist, layer);
|
|
1079
1079
|
var _wid = _canvas2.width / window.innerWidth * 30;
|
|
1080
1080
|
var _hei = _canvas2.height / window.innerHeight * 30;
|
|
1081
1081
|
var _texture = new Three.Texture(_canvas2);
|
|
@@ -1203,12 +1203,17 @@ export function getIntersectPoint(opX, opY, pX, pY) {
|
|
|
1203
1203
|
function gcd(a, b) {
|
|
1204
1204
|
return a % b ? gcd(b, a % b) : b;
|
|
1205
1205
|
}
|
|
1206
|
-
function
|
|
1207
|
-
var
|
|
1206
|
+
function getDistanceCanvas(distance, layer) {
|
|
1207
|
+
var _layer$unit;
|
|
1208
|
+
var parameters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
1208
1209
|
var canvas = document.createElement('canvas');
|
|
1209
1210
|
var ctx = canvas.getContext('2d');
|
|
1211
|
+
var curUnit = (_layer$unit = layer === null || layer === void 0 ? void 0 : layer.unit) !== null && _layer$unit !== void 0 ? _layer$unit : 'in';
|
|
1212
|
+
var distText = String((Math.round(convert(distance).from('in').to(curUnit) * 100) / 100).toFixed(0));
|
|
1210
1213
|
var fontSize = 16;
|
|
1211
|
-
var integral =
|
|
1214
|
+
var integral = distText + curUnit;
|
|
1215
|
+
// let integral = String(distance) + "''";
|
|
1216
|
+
|
|
1212
1217
|
parameters.fontName = parameters.fontName || ARROW_TEXT_FONTFACE;
|
|
1213
1218
|
|
|
1214
1219
|
// Prepare the font to be able to measure
|
|
@@ -231,6 +231,7 @@ var Scene3DViewer = /*#__PURE__*/function (_React$Component) {
|
|
|
231
231
|
});
|
|
232
232
|
self.renderer.domElement.style.display = 'block';
|
|
233
233
|
}, 1500);
|
|
234
|
+
self.planData = planData;
|
|
234
235
|
});
|
|
235
236
|
var area = scene.getIn(['layers', scene.selectedLayer, 'areas']);
|
|
236
237
|
var layer = scene.getIn(['layers', scene.selectedLayer]);
|
package/es/constants.js
CHANGED
|
@@ -754,6 +754,7 @@ export var INTERNAL_EVENT_START_DRAW_WALL = 'INTERNAL_EVENT_START_DRAW_WALL';
|
|
|
754
754
|
|
|
755
755
|
// room shape type
|
|
756
756
|
export var ROOM_SHAPE_TYPE = {
|
|
757
|
+
CUSTOM: 'custom',
|
|
757
758
|
RECTANGLE: 'rectangle',
|
|
758
759
|
TWO_WALLS_LEFT_TOP: '2wLeftTop',
|
|
759
760
|
TWO_WALLS_RIGHT_TOP: '2wRightTop',
|
package/es/devLiteRenderer.js
CHANGED
|
@@ -335,6 +335,104 @@ function WorkSpace(props) {
|
|
|
335
335
|
setExternalEvent(evt);
|
|
336
336
|
}
|
|
337
337
|
}, "Add Room shape(rectangle)"), /*#__PURE__*/React.createElement(Button, {
|
|
338
|
+
actionType: "danger",
|
|
339
|
+
onClick: function onClick() {
|
|
340
|
+
var evt = {
|
|
341
|
+
type: EXTERNAL_EVENT_ADD_ROOM_SHAPE,
|
|
342
|
+
payload: {
|
|
343
|
+
roomShapeType: 'custom',
|
|
344
|
+
width: 0,
|
|
345
|
+
height: 0,
|
|
346
|
+
doorStyle: {
|
|
347
|
+
id: 36,
|
|
348
|
+
type: 'door',
|
|
349
|
+
name: 'Brilliant White Shaker',
|
|
350
|
+
thumbnail: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/thumbnail/Brilliant%20White%20Shaker%20-%20RTA.jpg',
|
|
351
|
+
texture: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
352
|
+
color: '#ffffff',
|
|
353
|
+
glossness: 1,
|
|
354
|
+
door_style_id: 42,
|
|
355
|
+
brightness: 1,
|
|
356
|
+
sku: 'SW',
|
|
357
|
+
color_family: ',10,',
|
|
358
|
+
color_sku_alias: 'SW',
|
|
359
|
+
door_style_name: 'Shaker',
|
|
360
|
+
install: '',
|
|
361
|
+
doorStyles: {
|
|
362
|
+
base: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
363
|
+
counttop: 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg',
|
|
364
|
+
interior: 'http://127.0.0.1:4002/uploads/assets/default/maple.jpg',
|
|
365
|
+
base_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
366
|
+
base_fixed_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
367
|
+
base_drawer_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
368
|
+
base_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
369
|
+
door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
370
|
+
fixed_drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
371
|
+
drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
372
|
+
base_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
373
|
+
base_fixed_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
374
|
+
base_drawer_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
375
|
+
base_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
376
|
+
door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
377
|
+
fixed_drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
378
|
+
drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
379
|
+
base_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
380
|
+
base_fixed_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
381
|
+
base_drawer_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
382
|
+
base_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
383
|
+
door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
384
|
+
fixed_drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
385
|
+
drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
386
|
+
base_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
387
|
+
base_fixed_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
388
|
+
base_drawer_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
389
|
+
base_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
390
|
+
door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
391
|
+
fixed_drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
392
|
+
drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
393
|
+
base_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
394
|
+
base_fixed_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
395
|
+
base_drawer_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
396
|
+
base_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
397
|
+
door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
398
|
+
fixed_drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
399
|
+
drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
400
|
+
base_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
401
|
+
base_fixed_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
402
|
+
base_drawer_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
403
|
+
base_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
404
|
+
door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
405
|
+
fixed_drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
406
|
+
drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
407
|
+
base_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
408
|
+
base_fixed_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
409
|
+
base_drawer_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
410
|
+
base_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
411
|
+
door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
412
|
+
fixed_drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
413
|
+
drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
414
|
+
base_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
415
|
+
base_fixed_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
416
|
+
base_drawer_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
417
|
+
base_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
418
|
+
door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
419
|
+
fixed_drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
420
|
+
drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
421
|
+
base_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
422
|
+
base_fixed_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
423
|
+
base_drawer_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
424
|
+
base_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
425
|
+
door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
426
|
+
fixed_drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
427
|
+
drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg'
|
|
428
|
+
},
|
|
429
|
+
installation_types: [125, 124]
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
};
|
|
433
|
+
setExternalEvent(evt);
|
|
434
|
+
}
|
|
435
|
+
}, "Add Room shape(custom)"), /*#__PURE__*/React.createElement(Button, {
|
|
338
436
|
actionType: "danger",
|
|
339
437
|
onClick: function onClick() {
|
|
340
438
|
var evt = {
|
package/es/index.js
CHANGED
|
@@ -272,7 +272,7 @@ export function renderKitchenSimulator(container) {
|
|
|
272
272
|
var waitForGltf = (_props$waitForGltfIdl = props.waitForGltfIdleAfterEachEvent) !== null && _props$waitForGltfIdl !== void 0 ? _props$waitForGltfIdl : true;
|
|
273
273
|
var defaultTimeout = (_props$gltfTimeoutMs = props.gltfTimeoutMs) !== null && _props$gltfTimeoutMs !== void 0 ? _props$gltfTimeoutMs : 30000;
|
|
274
274
|
var defaultGrace = (_props$gltfGraceMs = props.gltfGraceMs) !== null && _props$gltfGraceMs !== void 0 ? _props$gltfGraceMs : 50;
|
|
275
|
-
var syncGrace = (_props$syncGltfGraceM = props.syncGltfGraceMs) !== null && _props$syncGltfGraceM !== void 0 ? _props$syncGltfGraceM :
|
|
275
|
+
var syncGrace = (_props$syncGltfGraceM = props.syncGltfGraceMs) !== null && _props$syncGltfGraceM !== void 0 ? _props$syncGltfGraceM : 350; // SyncScene uses larger grace
|
|
276
276
|
var syncExtraFrames = (_props$syncExtraFrame = props.syncExtraFrames) !== null && _props$syncExtraFrame !== void 0 ? _props$syncExtraFrame : 2;
|
|
277
277
|
var draining = false;
|
|
278
278
|
function isSyncScene(ev) {
|
|
@@ -729,6 +729,7 @@ function initPropData(element, catalog) {
|
|
|
729
729
|
function updateAttributeOfSelectedElement(element, attrPayload, state, layer, catalog, projectActions) {
|
|
730
730
|
var _attributesFormData;
|
|
731
731
|
var callback = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
732
|
+
var layerUnit = state.getIn(['scene', 'layers', 'layer-1', 'unit']);
|
|
732
733
|
var attributesFormData = initAttrData(element, layer, state);
|
|
733
734
|
var value = attrPayload.value;
|
|
734
735
|
var attributeName = attrPayload.attributeName;
|
|
@@ -736,28 +737,8 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, ca
|
|
|
736
737
|
if (attributeName === ATT_ITEM_POS) {
|
|
737
738
|
// calculate the new position of movement
|
|
738
739
|
var rotRad = (value.directionAng + element.rotation) / 180 * Math.PI;
|
|
739
|
-
var newX = element.x + convert((value.oldDistance - value.newDistance) * Math.cos(rotRad)).from(
|
|
740
|
-
var newY = element.y + convert((value.oldDistance - value.newDistance) * Math.sin(rotRad)).from(
|
|
741
|
-
// const reversedDirection =
|
|
742
|
-
// value.directionAng === LEFT_DIST_ANG
|
|
743
|
-
// ? RIGHT_DIST_ANG
|
|
744
|
-
// : value.directionAng === RIGHT_DIST_ANG
|
|
745
|
-
// ? LEFT_DIST_ANG
|
|
746
|
-
// : value.directionAng === BACK_DIST_ANG
|
|
747
|
-
// ? FRONT_DIST_ANG
|
|
748
|
-
// : BACK_DIST_ANG;
|
|
749
|
-
// let dist = convert(
|
|
750
|
-
// element.distArray?.find(v => v[1] === reversedDirection)
|
|
751
|
-
// ? element.distArray?.find(v => v[1] === reversedDirection)[0]
|
|
752
|
-
// : 0
|
|
753
|
-
// )
|
|
754
|
-
// .from('cm')
|
|
755
|
-
// .to('in');
|
|
756
|
-
// if (dist + (value.oldDistance - value.newDistance) <= 0 || value.newDistance < 0) {
|
|
757
|
-
// // confirm "The item will be placed outside the floor plan. Are you sure?"
|
|
758
|
-
// setPopupOpen(true);
|
|
759
|
-
// return;
|
|
760
|
-
// }
|
|
740
|
+
var newX = element.x + convert((value.oldDistance - value.newDistance) * Math.cos(rotRad)).from(layerUnit).to('cm');
|
|
741
|
+
var newY = element.y + convert((value.oldDistance - value.newDistance) * Math.sin(rotRad)).from(layerUnit).to('cm');
|
|
761
742
|
value = {
|
|
762
743
|
x: newX,
|
|
763
744
|
y: newY
|
|
@@ -766,8 +747,8 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, ca
|
|
|
766
747
|
var att = attributesFormData.has(attributeName) ? attributesFormData.get(attributeName) : element[attributeName];
|
|
767
748
|
if (att) value = att.merge({
|
|
768
749
|
_length: value,
|
|
769
|
-
_unit:
|
|
770
|
-
length: convert(value).from(
|
|
750
|
+
_unit: layerUnit,
|
|
751
|
+
length: convert(value).from(layerUnit).to(UNIT_CENTIMETER)
|
|
771
752
|
});
|
|
772
753
|
}
|
|
773
754
|
// make the new attrivutes
|
|
@@ -1179,9 +1160,16 @@ function _handleExternalEvent() {
|
|
|
1179
1160
|
while (1) switch (_context8.prev = _context8.next) {
|
|
1180
1161
|
case 0:
|
|
1181
1162
|
it = evt === null || evt === void 0 || (_evt$payload2 = evt.payload) === null || _evt$payload2 === void 0 || (_evt$payload2 = _evt$payload2.layers['layer-1']) === null || _evt$payload2 === void 0 ? void 0 : _evt$payload2.items[itemKeys[i]]; //////// check altitude of item property and change length from _length (convert length from 'in' fo 'cm')
|
|
1182
|
-
if (
|
|
1183
|
-
|
|
1184
|
-
|
|
1163
|
+
// if (
|
|
1164
|
+
// it.properties.altitude.length !==
|
|
1165
|
+
// convert(it.properties.altitude._length).from('in').to('cm')
|
|
1166
|
+
// ) {
|
|
1167
|
+
// it.properties.altitude.length = convert(
|
|
1168
|
+
// it.properties.altitude._length
|
|
1169
|
+
// )
|
|
1170
|
+
// .from('in')
|
|
1171
|
+
// .to('cm');
|
|
1172
|
+
// }
|
|
1185
1173
|
/////////
|
|
1186
1174
|
if (!cdsItems.some(function (v) {
|
|
1187
1175
|
var _it$doorStyle;
|
|
@@ -1254,7 +1242,7 @@ function _handleExternalEvent() {
|
|
|
1254
1242
|
return _ref2.apply(this, arguments);
|
|
1255
1243
|
};
|
|
1256
1244
|
}());
|
|
1257
|
-
}
|
|
1245
|
+
} else props.projectActions.loadProject(evt.payload);
|
|
1258
1246
|
case 5:
|
|
1259
1247
|
return _context1.abrupt("continue", 44);
|
|
1260
1248
|
case 6:
|
|
@@ -1401,7 +1389,7 @@ function _handleExternalEvent() {
|
|
|
1401
1389
|
} else props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
|
|
1402
1390
|
return _context1.abrupt("continue", 44);
|
|
1403
1391
|
case 20:
|
|
1404
|
-
_evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle;
|
|
1392
|
+
_evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle;
|
|
1405
1393
|
props.projectActions.createRoomWithShape(roomShapeType, width, height, _doorStyle);
|
|
1406
1394
|
return _context1.abrupt("continue", 44);
|
|
1407
1395
|
case 21:
|
|
Binary file
|
package/lib/class/project.js
CHANGED
|
@@ -847,85 +847,88 @@ var Project = exports["default"] = /*#__PURE__*/function () {
|
|
|
847
847
|
state = state.merge({
|
|
848
848
|
catalog: catalog
|
|
849
849
|
});
|
|
850
|
-
var _viewer2D = state.viewer2D;
|
|
851
|
-
var viewer = _viewer2D.toJS();
|
|
852
|
-
width = (0, _convertUnitsLite.convert)(width).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
|
|
853
|
-
height = (0, _convertUnitsLite.convert)(height).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
|
|
854
|
-
var layerID = state.scene.selectedLayer;
|
|
855
850
|
state = _export2.Item.setInitialDoorStyle(state, doorStyle).updatedState;
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
851
|
+
var layerID = state.scene.selectedLayer;
|
|
852
|
+
if (roomShapeType !== constants.ROOM_SHAPE_TYPE.CUSTOM && !(0, _helper.isEmpty)(width) && !(0, _helper.isEmpty)(height) && width !== 0 && height !== 0) {
|
|
853
|
+
var _viewer2D = state.viewer2D;
|
|
854
|
+
var viewer = _viewer2D.toJS();
|
|
855
|
+
if ((0, _helper.isEmpty)(viewer)) return {
|
|
856
|
+
updatedState: state
|
|
857
|
+
};
|
|
858
|
+
width = (0, _convertUnitsLite.convert)(width).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
|
|
859
|
+
height = (0, _convertUnitsLite.convert)(height).from(state.getIn(['scene', 'layers', 'layer-1', 'unit'])).to('cm');
|
|
860
|
+
var halfWidth = width / 2;
|
|
861
|
+
var halfHeight = height / 2;
|
|
862
|
+
var viewerWidth = viewer.SVGWidth;
|
|
863
|
+
var viewerHeight = viewer.SVGHeight;
|
|
864
|
+
var centerPos = {
|
|
865
|
+
x: viewerWidth / 2,
|
|
866
|
+
y: viewerHeight / 2
|
|
867
|
+
};
|
|
868
|
+
var vtLB = {
|
|
869
|
+
x: centerPos.x - halfWidth,
|
|
870
|
+
y: centerPos.y - halfHeight
|
|
871
|
+
};
|
|
872
|
+
var vtRB = {
|
|
873
|
+
x: centerPos.x + halfWidth,
|
|
874
|
+
y: centerPos.y - halfHeight
|
|
875
|
+
};
|
|
876
|
+
var vtRT = {
|
|
877
|
+
x: centerPos.x + halfWidth,
|
|
878
|
+
y: centerPos.y + halfHeight
|
|
879
|
+
};
|
|
880
|
+
var vtLT = {
|
|
881
|
+
x: centerPos.x - halfWidth,
|
|
882
|
+
y: centerPos.y + halfHeight
|
|
883
|
+
};
|
|
884
|
+
var vertices = [];
|
|
885
|
+
switch (roomShapeType) {
|
|
886
|
+
case 'rectangle':
|
|
887
|
+
vertices = [vtLB, vtLT, vtRT, vtRB];
|
|
888
|
+
break;
|
|
889
|
+
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_BOTTOM:
|
|
890
|
+
vertices = [vtLB, vtRB, vtRT];
|
|
891
|
+
break;
|
|
892
|
+
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_RIGHT_TOP:
|
|
893
|
+
vertices = [vtRB, vtRT, vtLT];
|
|
894
|
+
break;
|
|
895
|
+
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_TOP:
|
|
896
|
+
vertices = [vtRT, vtLT, vtLB];
|
|
897
|
+
break;
|
|
898
|
+
case constants.ROOM_SHAPE_TYPE.TWO_WALLS_LEFT_BOTTOM:
|
|
899
|
+
vertices = [vtLT, vtLB, vtRB];
|
|
900
|
+
break;
|
|
901
|
+
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_LEFT_TOP_RIGHT:
|
|
902
|
+
vertices = [vtRB, vtRT, vtLT, vtLB];
|
|
903
|
+
break;
|
|
904
|
+
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_TOP_RIGHT_BOTTOM:
|
|
905
|
+
vertices = [vtLB, vtRB, vtRT, vtLT];
|
|
906
|
+
break;
|
|
907
|
+
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_RIGHT_BOTTOM_LEFT:
|
|
908
|
+
vertices = [vtLT, vtLB, vtRB, vtRT];
|
|
909
|
+
break;
|
|
910
|
+
case constants.ROOM_SHAPE_TYPE.THREE_WALLS_BOTTOM_LEFT_TOP:
|
|
911
|
+
vertices = [vtRT, vtLT, vtLB, vtRB];
|
|
912
|
+
break;
|
|
913
|
+
}
|
|
914
|
+
for (var i = 0; i < vertices.length - 1; i++) {
|
|
915
|
+
state = _export2.Line.create(state, layerID, 'wall', vertices[i].x, vertices[i].y, vertices[i + 1].x, vertices[i + 1].y).updatedState;
|
|
916
|
+
}
|
|
917
|
+
if (roomShapeType === constants.ROOM_SHAPE_TYPE.RECTANGLE) {
|
|
918
|
+
state = _export2.Line.create(state, layerID, 'wall', vertices[vertices.length - 1].x, vertices[vertices.length - 1].y, vertices[0].x, vertices[0].y).updatedState;
|
|
919
|
+
}
|
|
920
|
+
var layer = state.getIn(['scene', 'layers', layerID]);
|
|
921
|
+
var lines = layer.getIn(['lines']).toJS();
|
|
922
|
+
var drawingInfo = {};
|
|
923
|
+
var lineKey = Object.keys(lines);
|
|
924
|
+
for (var _i = 0; _i < lineKey.length; _i++) {
|
|
925
|
+
if (!(0, _helper.isEmpty)(lineKey)) {
|
|
926
|
+
drawingInfo.drawingLine = layer.getIn(['lines', lineKey[_i]]);
|
|
927
|
+
}
|
|
928
|
+
state = _export2.Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
|
|
926
929
|
}
|
|
927
|
-
state = _export2.Layer.detectAndUpdateAreas(state, layerID, drawingInfo).updatedState;
|
|
928
930
|
}
|
|
931
|
+
|
|
929
932
|
// copy keeped measurement unit
|
|
930
933
|
state = state.setIn(['scene', 'layers', layerID, 'unit'], layerUnit);
|
|
931
934
|
state = state.setIn(['scene', 'layers', layerID, 'ceilHeight'], ceilHeight);
|
|
@@ -39,6 +39,7 @@ function Ruler(_ref) {
|
|
|
39
39
|
transform = _ref.transform,
|
|
40
40
|
style = _ref.style;
|
|
41
41
|
var distanceText = (0, _convertUnitsLite.convert)(length).from(unit).to(rulerUnit).toFixed(0);
|
|
42
|
+
distanceText = (Math.round((0, _convertUnitsLite.convert)(distanceText).from('in').to(layer.unit) * 100) / 100).toFixed(0);
|
|
42
43
|
var textLength = (distanceText.length + layer.unit.length) * 9;
|
|
43
44
|
return /*#__PURE__*/_react["default"].createElement("g", {
|
|
44
45
|
transform: transform
|
|
@@ -59,7 +60,7 @@ function Ruler(_ref) {
|
|
|
59
60
|
transform: "scale(1, -1)",
|
|
60
61
|
style: STYLE_TEXT,
|
|
61
62
|
fill: _constants.TEXT_COLOR_NEUTRAL_7
|
|
62
|
-
},
|
|
63
|
+
}, distanceText, layer.unit === 'in' ? '"' : layer.unit)), /*#__PURE__*/_react["default"].createElement("line", {
|
|
63
64
|
x1: style === _line.STYLE_ROOM_SHAPE ? 0 : 4,
|
|
64
65
|
y1: "0",
|
|
65
66
|
x2: (length - textLength) / 2 < 0 ? 0 : (length - textLength) / 2,
|
|
@@ -301,7 +301,7 @@ function updateScene(planData, sceneData, oldSceneData, diffArray, actions, cata
|
|
|
301
301
|
* Every 'doorStyle' change has a 'door_style_id' change.
|
|
302
302
|
* So, if door_style_id changes, it indicates 'doorStyle' change.
|
|
303
303
|
*/
|
|
304
|
-
if (['id'].includes(path[path.length - 1])) isSettingDoorStyle = true;
|
|
304
|
+
if (path[1] === 'layers' && path[3] === 'molding' || path[path.length - 2] === 'doorStyle' && path[path.length - 1] === 'id' || ['id'].includes(path[path.length - 1])) isSettingDoorStyle = true;
|
|
305
305
|
|
|
306
306
|
// If there are any molding change of layer
|
|
307
307
|
if (path[1] === 'layers' && path[3] === 'molding') isUpdateMolding = true;
|
|
@@ -986,9 +986,9 @@ function getLineDistance(obj, layer, isCalcWall, index) {
|
|
|
986
986
|
obj.geometry.attributes.position.needsUpdate = true;
|
|
987
987
|
obj.geometry.computeBoundingSphere();
|
|
988
988
|
obj.geometry.computeBoundingBox();
|
|
989
|
-
var dist = (0,
|
|
989
|
+
var dist = (0, _convertUnitsLite.convert)(intersects[i].distance).from('cm').to('in');
|
|
990
990
|
if (dist > 3) {
|
|
991
|
-
var _canvas =
|
|
991
|
+
var _canvas = getDistanceCanvas(dist, layer);
|
|
992
992
|
var wid = _canvas.width / window.innerWidth * 30;
|
|
993
993
|
var hei = _canvas.height / window.innerHeight * 30;
|
|
994
994
|
var texture = new Three.Texture(_canvas);
|
|
@@ -1110,7 +1110,7 @@ function getLineDistance(obj, layer, isCalcWall, index) {
|
|
|
1110
1110
|
obj.geometry.attributes.position.needsUpdate = true;
|
|
1111
1111
|
var _dist = (0, _math.formatNumber)(distance, _constants.DECIMAL_PLACES_2);
|
|
1112
1112
|
if (_dist > 3) {
|
|
1113
|
-
var _canvas2 =
|
|
1113
|
+
var _canvas2 = getDistanceCanvas(_dist, layer);
|
|
1114
1114
|
var _wid = _canvas2.width / window.innerWidth * 30;
|
|
1115
1115
|
var _hei = _canvas2.height / window.innerHeight * 30;
|
|
1116
1116
|
var _texture = new Three.Texture(_canvas2);
|
|
@@ -1238,12 +1238,17 @@ function getIntersectPoint(opX, opY, pX, pY) {
|
|
|
1238
1238
|
function gcd(a, b) {
|
|
1239
1239
|
return a % b ? gcd(b, a % b) : b;
|
|
1240
1240
|
}
|
|
1241
|
-
function
|
|
1242
|
-
var
|
|
1241
|
+
function getDistanceCanvas(distance, layer) {
|
|
1242
|
+
var _layer$unit;
|
|
1243
|
+
var parameters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
1243
1244
|
var canvas = document.createElement('canvas');
|
|
1244
1245
|
var ctx = canvas.getContext('2d');
|
|
1246
|
+
var curUnit = (_layer$unit = layer === null || layer === void 0 ? void 0 : layer.unit) !== null && _layer$unit !== void 0 ? _layer$unit : 'in';
|
|
1247
|
+
var distText = String((Math.round((0, _convertUnitsLite.convert)(distance).from('in').to(curUnit) * 100) / 100).toFixed(0));
|
|
1245
1248
|
var fontSize = 16;
|
|
1246
|
-
var integral =
|
|
1249
|
+
var integral = distText + curUnit;
|
|
1250
|
+
// let integral = String(distance) + "''";
|
|
1251
|
+
|
|
1247
1252
|
parameters.fontName = parameters.fontName || _constants.ARROW_TEXT_FONTFACE;
|
|
1248
1253
|
|
|
1249
1254
|
// Prepare the font to be able to measure
|
|
@@ -238,6 +238,7 @@ var Scene3DViewer = exports["default"] = /*#__PURE__*/function (_React$Component
|
|
|
238
238
|
});
|
|
239
239
|
self.renderer.domElement.style.display = 'block';
|
|
240
240
|
}, 1500);
|
|
241
|
+
self.planData = planData;
|
|
241
242
|
});
|
|
242
243
|
var area = scene.getIn(['layers', scene.selectedLayer, 'areas']);
|
|
243
244
|
var layer = scene.getIn(['layers', scene.selectedLayer]);
|
package/lib/constants.js
CHANGED
|
@@ -764,6 +764,7 @@ var INTERNAL_EVENT_START_DRAW_WALL = exports.INTERNAL_EVENT_START_DRAW_WALL = 'I
|
|
|
764
764
|
|
|
765
765
|
// room shape type
|
|
766
766
|
var ROOM_SHAPE_TYPE = exports.ROOM_SHAPE_TYPE = {
|
|
767
|
+
CUSTOM: 'custom',
|
|
767
768
|
RECTANGLE: 'rectangle',
|
|
768
769
|
TWO_WALLS_LEFT_TOP: '2wLeftTop',
|
|
769
770
|
TWO_WALLS_RIGHT_TOP: '2wRightTop',
|
package/lib/devLiteRenderer.js
CHANGED
|
@@ -339,6 +339,104 @@ function WorkSpace(props) {
|
|
|
339
339
|
setExternalEvent(evt);
|
|
340
340
|
}
|
|
341
341
|
}, "Add Room shape(rectangle)"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
342
|
+
actionType: "danger",
|
|
343
|
+
onClick: function onClick() {
|
|
344
|
+
var evt = {
|
|
345
|
+
type: _constants.EXTERNAL_EVENT_ADD_ROOM_SHAPE,
|
|
346
|
+
payload: {
|
|
347
|
+
roomShapeType: 'custom',
|
|
348
|
+
width: 0,
|
|
349
|
+
height: 0,
|
|
350
|
+
doorStyle: {
|
|
351
|
+
id: 36,
|
|
352
|
+
type: 'door',
|
|
353
|
+
name: 'Brilliant White Shaker',
|
|
354
|
+
thumbnail: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/thumbnail/Brilliant%20White%20Shaker%20-%20RTA.jpg',
|
|
355
|
+
texture: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
356
|
+
color: '#ffffff',
|
|
357
|
+
glossness: 1,
|
|
358
|
+
door_style_id: 42,
|
|
359
|
+
brightness: 1,
|
|
360
|
+
sku: 'SW',
|
|
361
|
+
color_family: ',10,',
|
|
362
|
+
color_sku_alias: 'SW',
|
|
363
|
+
door_style_name: 'Shaker',
|
|
364
|
+
install: '',
|
|
365
|
+
doorStyles: {
|
|
366
|
+
base: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
367
|
+
counttop: 'https://media.test.diydesignspace.com/uploads/CountTop/202105074107_5/texture/Unique_Calcatta_texture.jpg',
|
|
368
|
+
interior: 'http://127.0.0.1:4002/uploads/assets/default/maple.jpg',
|
|
369
|
+
base_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
370
|
+
base_fixed_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
371
|
+
base_drawer_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
372
|
+
base_drawer_door_1: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
373
|
+
door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
374
|
+
fixed_drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
375
|
+
drawer_door_handle_1: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
376
|
+
base_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
377
|
+
base_fixed_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
378
|
+
base_drawer_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
379
|
+
base_drawer_door_2: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
380
|
+
door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
381
|
+
fixed_drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
382
|
+
drawer_door_handle_2: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
383
|
+
base_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
384
|
+
base_fixed_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
385
|
+
base_drawer_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
386
|
+
base_drawer_door_3: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
387
|
+
door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
388
|
+
fixed_drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
389
|
+
drawer_door_handle_3: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
390
|
+
base_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
391
|
+
base_fixed_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
392
|
+
base_drawer_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
393
|
+
base_drawer_door_4: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
394
|
+
door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
395
|
+
fixed_drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
396
|
+
drawer_door_handle_4: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
397
|
+
base_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
398
|
+
base_fixed_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
399
|
+
base_drawer_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
400
|
+
base_drawer_door_5: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
401
|
+
door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
402
|
+
fixed_drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
403
|
+
drawer_door_handle_5: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
404
|
+
base_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
405
|
+
base_fixed_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
406
|
+
base_drawer_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
407
|
+
base_drawer_door_6: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
408
|
+
door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
409
|
+
fixed_drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
410
|
+
drawer_door_handle_6: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
411
|
+
base_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
412
|
+
base_fixed_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
413
|
+
base_drawer_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
414
|
+
base_drawer_door_7: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
415
|
+
door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
416
|
+
fixed_drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
417
|
+
drawer_door_handle_7: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
418
|
+
base_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
419
|
+
base_fixed_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
420
|
+
base_drawer_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
421
|
+
base_drawer_door_8: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
422
|
+
door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
423
|
+
fixed_drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
424
|
+
drawer_door_handle_8: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
425
|
+
base_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
426
|
+
base_fixed_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
427
|
+
base_drawer_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
428
|
+
base_drawer_door_9: 'https://media.test.diydesignspace.com/uploads/DoorColor/202105065453_36/texture/White1px.jpeg',
|
|
429
|
+
door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
430
|
+
fixed_drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg',
|
|
431
|
+
drawer_door_handle_9: 'http://127.0.0.1:4002/uploads/assets/default/steel.jpg'
|
|
432
|
+
},
|
|
433
|
+
installation_types: [125, 124]
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
};
|
|
437
|
+
setExternalEvent(evt);
|
|
438
|
+
}
|
|
439
|
+
}, "Add Room shape(custom)"), /*#__PURE__*/_react["default"].createElement(_antd.Button, {
|
|
342
440
|
actionType: "danger",
|
|
343
441
|
onClick: function onClick() {
|
|
344
442
|
var evt = {
|
package/lib/index.js
CHANGED
|
@@ -280,7 +280,7 @@ function renderKitchenSimulator(container) {
|
|
|
280
280
|
var waitForGltf = (_props$waitForGltfIdl = props.waitForGltfIdleAfterEachEvent) !== null && _props$waitForGltfIdl !== void 0 ? _props$waitForGltfIdl : true;
|
|
281
281
|
var defaultTimeout = (_props$gltfTimeoutMs = props.gltfTimeoutMs) !== null && _props$gltfTimeoutMs !== void 0 ? _props$gltfTimeoutMs : 30000;
|
|
282
282
|
var defaultGrace = (_props$gltfGraceMs = props.gltfGraceMs) !== null && _props$gltfGraceMs !== void 0 ? _props$gltfGraceMs : 50;
|
|
283
|
-
var syncGrace = (_props$syncGltfGraceM = props.syncGltfGraceMs) !== null && _props$syncGltfGraceM !== void 0 ? _props$syncGltfGraceM :
|
|
283
|
+
var syncGrace = (_props$syncGltfGraceM = props.syncGltfGraceMs) !== null && _props$syncGltfGraceM !== void 0 ? _props$syncGltfGraceM : 350; // SyncScene uses larger grace
|
|
284
284
|
var syncExtraFrames = (_props$syncExtraFrame = props.syncExtraFrames) !== null && _props$syncExtraFrame !== void 0 ? _props$syncExtraFrame : 2;
|
|
285
285
|
var draining = false;
|
|
286
286
|
function isSyncScene(ev) {
|
|
@@ -736,6 +736,7 @@ function initPropData(element, catalog) {
|
|
|
736
736
|
function updateAttributeOfSelectedElement(element, attrPayload, state, layer, catalog, projectActions) {
|
|
737
737
|
var _attributesFormData;
|
|
738
738
|
var callback = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : null;
|
|
739
|
+
var layerUnit = state.getIn(['scene', 'layers', 'layer-1', 'unit']);
|
|
739
740
|
var attributesFormData = initAttrData(element, layer, state);
|
|
740
741
|
var value = attrPayload.value;
|
|
741
742
|
var attributeName = attrPayload.attributeName;
|
|
@@ -743,28 +744,8 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, ca
|
|
|
743
744
|
if (attributeName === _constants.ATT_ITEM_POS) {
|
|
744
745
|
// calculate the new position of movement
|
|
745
746
|
var rotRad = (value.directionAng + element.rotation) / 180 * Math.PI;
|
|
746
|
-
var newX = element.x + (0, _convertUnitsLite.convert)((value.oldDistance - value.newDistance) * Math.cos(rotRad)).from(
|
|
747
|
-
var newY = element.y + (0, _convertUnitsLite.convert)((value.oldDistance - value.newDistance) * Math.sin(rotRad)).from(
|
|
748
|
-
// const reversedDirection =
|
|
749
|
-
// value.directionAng === LEFT_DIST_ANG
|
|
750
|
-
// ? RIGHT_DIST_ANG
|
|
751
|
-
// : value.directionAng === RIGHT_DIST_ANG
|
|
752
|
-
// ? LEFT_DIST_ANG
|
|
753
|
-
// : value.directionAng === BACK_DIST_ANG
|
|
754
|
-
// ? FRONT_DIST_ANG
|
|
755
|
-
// : BACK_DIST_ANG;
|
|
756
|
-
// let dist = convert(
|
|
757
|
-
// element.distArray?.find(v => v[1] === reversedDirection)
|
|
758
|
-
// ? element.distArray?.find(v => v[1] === reversedDirection)[0]
|
|
759
|
-
// : 0
|
|
760
|
-
// )
|
|
761
|
-
// .from('cm')
|
|
762
|
-
// .to('in');
|
|
763
|
-
// if (dist + (value.oldDistance - value.newDistance) <= 0 || value.newDistance < 0) {
|
|
764
|
-
// // confirm "The item will be placed outside the floor plan. Are you sure?"
|
|
765
|
-
// setPopupOpen(true);
|
|
766
|
-
// return;
|
|
767
|
-
// }
|
|
747
|
+
var newX = element.x + (0, _convertUnitsLite.convert)((value.oldDistance - value.newDistance) * Math.cos(rotRad)).from(layerUnit).to('cm');
|
|
748
|
+
var newY = element.y + (0, _convertUnitsLite.convert)((value.oldDistance - value.newDistance) * Math.sin(rotRad)).from(layerUnit).to('cm');
|
|
768
749
|
value = {
|
|
769
750
|
x: newX,
|
|
770
751
|
y: newY
|
|
@@ -773,8 +754,8 @@ function updateAttributeOfSelectedElement(element, attrPayload, state, layer, ca
|
|
|
773
754
|
var att = attributesFormData.has(attributeName) ? attributesFormData.get(attributeName) : element[attributeName];
|
|
774
755
|
if (att) value = att.merge({
|
|
775
756
|
_length: value,
|
|
776
|
-
_unit:
|
|
777
|
-
length: (0, _convertUnitsLite.convert)(value).from(
|
|
757
|
+
_unit: layerUnit,
|
|
758
|
+
length: (0, _convertUnitsLite.convert)(value).from(layerUnit).to(_constants.UNIT_CENTIMETER)
|
|
778
759
|
});
|
|
779
760
|
}
|
|
780
761
|
// make the new attrivutes
|
|
@@ -1186,9 +1167,16 @@ function _handleExternalEvent() {
|
|
|
1186
1167
|
while (1) switch (_context8.prev = _context8.next) {
|
|
1187
1168
|
case 0:
|
|
1188
1169
|
it = evt === null || evt === void 0 || (_evt$payload2 = evt.payload) === null || _evt$payload2 === void 0 || (_evt$payload2 = _evt$payload2.layers['layer-1']) === null || _evt$payload2 === void 0 ? void 0 : _evt$payload2.items[itemKeys[i]]; //////// check altitude of item property and change length from _length (convert length from 'in' fo 'cm')
|
|
1189
|
-
if (
|
|
1190
|
-
|
|
1191
|
-
|
|
1170
|
+
// if (
|
|
1171
|
+
// it.properties.altitude.length !==
|
|
1172
|
+
// convert(it.properties.altitude._length).from('in').to('cm')
|
|
1173
|
+
// ) {
|
|
1174
|
+
// it.properties.altitude.length = convert(
|
|
1175
|
+
// it.properties.altitude._length
|
|
1176
|
+
// )
|
|
1177
|
+
// .from('in')
|
|
1178
|
+
// .to('cm');
|
|
1179
|
+
// }
|
|
1192
1180
|
/////////
|
|
1193
1181
|
if (!cdsItems.some(function (v) {
|
|
1194
1182
|
var _it$doorStyle;
|
|
@@ -1261,7 +1249,7 @@ function _handleExternalEvent() {
|
|
|
1261
1249
|
return _ref2.apply(this, arguments);
|
|
1262
1250
|
};
|
|
1263
1251
|
}());
|
|
1264
|
-
}
|
|
1252
|
+
} else props.projectActions.loadProject(evt.payload);
|
|
1265
1253
|
case 5:
|
|
1266
1254
|
return _context1.abrupt("continue", 44);
|
|
1267
1255
|
case 6:
|
|
@@ -1408,7 +1396,7 @@ function _handleExternalEvent() {
|
|
|
1408
1396
|
} else props.itemsActions.setDoorStyle(doorStyle, itemCDS, isAll);
|
|
1409
1397
|
return _context1.abrupt("continue", 44);
|
|
1410
1398
|
case 20:
|
|
1411
|
-
_evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle;
|
|
1399
|
+
_evt$payload6 = evt.payload, roomShapeType = _evt$payload6.roomShapeType, width = _evt$payload6.width, height = _evt$payload6.height, _doorStyle = _evt$payload6.doorStyle;
|
|
1412
1400
|
props.projectActions.createRoomWithShape(roomShapeType, width, height, _doorStyle);
|
|
1413
1401
|
return _context1.abrupt("continue", 44);
|
|
1414
1402
|
case 21:
|