kitchen-simulator 4.2.1 → 4.2.3
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/utils/molding.js +49 -19
- package/es/utils/ruler.js +1 -1
- package/lib/utils/molding.js +49 -19
- package/lib/utils/ruler.js +1 -1
- package/package.json +1 -1
package/es/utils/molding.js
CHANGED
|
@@ -939,22 +939,26 @@ export function createMonldingGroup(oldMG, layer, molding, catalog) {
|
|
|
939
939
|
return newMG;
|
|
940
940
|
}
|
|
941
941
|
export function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
942
|
+
var _layer$items;
|
|
942
943
|
var moldingData = [];
|
|
943
|
-
var items = layer.items.toArray();
|
|
944
|
+
var items = layer === null || layer === void 0 || (_layer$items = layer.items) === null || _layer$items === void 0 ? void 0 : _layer$items.toArray();
|
|
944
945
|
var allLineRects = GeometryUtils.buildRectFromLines(layer, GeometryUtils.getAllLines(layer));
|
|
945
946
|
|
|
946
947
|
// get all molding line segments
|
|
947
948
|
var moldingLines = [];
|
|
948
|
-
items.forEach(function (item) {
|
|
949
|
+
items === null || items === void 0 || items.forEach(function (item) {
|
|
949
950
|
if (item.category === ITEM_TYPE.CABINET) {
|
|
950
|
-
var _item$molding;
|
|
951
|
+
var _item$properties$get$, _item$properties$get$2, _item$properties$get$3, _item$molding;
|
|
951
952
|
var MGlines = getLinesOfItem2(item, allLineRects, catalog); // exclude overlayed to wall
|
|
953
|
+
// id & width
|
|
954
|
+
var parentId = item.id;
|
|
955
|
+
var inchWidth = convert(item.properties.get('width').get('_length')).from((_item$properties$get$ = item.properties.get('width').get('_unit')) !== null && _item$properties$get$ !== void 0 ? _item$properties$get$ : 'in').to('in');
|
|
952
956
|
// z position of molding line
|
|
953
957
|
var z = item.properties.get('altitude').get('_length');
|
|
954
|
-
var zUnit = item.properties.get('altitude').get('_unit')
|
|
958
|
+
var zUnit = (_item$properties$get$2 = item.properties.get('altitude').get('_unit')) !== null && _item$properties$get$2 !== void 0 ? _item$properties$get$2 : 'in';
|
|
955
959
|
z = convert(z).from(zUnit).to('cm');
|
|
956
960
|
var h = item.properties.get('height').get('_length');
|
|
957
|
-
var hUnit = item.properties.get('height').get('_unit')
|
|
961
|
+
var hUnit = (_item$properties$get$3 = item.properties.get('height').get('_unit')) !== null && _item$properties$get$3 !== void 0 ? _item$properties$get$3 : 'in';
|
|
958
962
|
h = convert(h).from(hUnit).to('cm');
|
|
959
963
|
if (!isEmpty(item.molding) && isEnableItemForMolding(layer, item)) {
|
|
960
964
|
// calc normal molding line
|
|
@@ -973,7 +977,9 @@ export function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
973
977
|
molding: _objectSpread({}, molding),
|
|
974
978
|
doorStyle: item.doorStyle.hasOwnProperty('id') ? item.doorStyle : !isEmpty(item.doorStyle) && item.doorStyle.toJS(),
|
|
975
979
|
line: line,
|
|
976
|
-
z: lineZ
|
|
980
|
+
z: lineZ,
|
|
981
|
+
parentId: parentId,
|
|
982
|
+
inchWidth: inchWidth
|
|
977
983
|
});
|
|
978
984
|
});
|
|
979
985
|
});
|
|
@@ -993,7 +999,9 @@ export function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
993
999
|
},
|
|
994
1000
|
doorStyle: item.doorStyle.hasOwnProperty('id') ? item.doorStyle : !isEmpty(item.doorStyle) && item.doorStyle.toJS(),
|
|
995
1001
|
line: line,
|
|
996
|
-
z: z
|
|
1002
|
+
z: z,
|
|
1003
|
+
parentId: parentId,
|
|
1004
|
+
inchWidth: inchWidth
|
|
997
1005
|
});
|
|
998
1006
|
});
|
|
999
1007
|
}
|
|
@@ -1010,14 +1018,14 @@ export function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
1010
1018
|
x2: moldingLines[i].line[1].x,
|
|
1011
1019
|
y2: moldingLines[i].line[1].y
|
|
1012
1020
|
};
|
|
1013
|
-
var _loop1 = function _loop1(
|
|
1014
|
-
if (i ===
|
|
1015
|
-
if (Math.abs(moldingLines[i].z - moldingLines[
|
|
1021
|
+
var _loop1 = function _loop1(_j) {
|
|
1022
|
+
if (i === _j) return 0; // continue
|
|
1023
|
+
if (Math.abs(moldingLines[i].z - moldingLines[_j].z) > EPSILON) return 0; // continue
|
|
1016
1024
|
var destLine = {
|
|
1017
|
-
x1: moldingLines[
|
|
1018
|
-
y1: moldingLines[
|
|
1019
|
-
x2: moldingLines[
|
|
1020
|
-
y2: moldingLines[
|
|
1025
|
+
x1: moldingLines[_j].line[0].x,
|
|
1026
|
+
y1: moldingLines[_j].line[0].y,
|
|
1027
|
+
x2: moldingLines[_j].line[1].x,
|
|
1028
|
+
y2: moldingLines[_j].line[1].y
|
|
1021
1029
|
};
|
|
1022
1030
|
var rst = GeometryUtils.relationshipOfTwoOverlappedLines(srcLine, destLine);
|
|
1023
1031
|
if (rst.result === OVERLAP_SAME || rst.result === OVERLAP_INCLUDED) {
|
|
@@ -1026,7 +1034,7 @@ export function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
1026
1034
|
} else if (rst.result === OVERLAP_SOME) {
|
|
1027
1035
|
removeLineIds.push(i);
|
|
1028
1036
|
var lineSegs = getTrimmedContourLineSegs(rst.trimmedSegs, moldingLines.filter(function (v, idx) {
|
|
1029
|
-
return idx !== i && idx !==
|
|
1037
|
+
return idx !== i && idx !== _j && Math.abs(v.z - moldingLines[i].z) < EPSILON;
|
|
1030
1038
|
}), 0);
|
|
1031
1039
|
if (lineSegs.length > 0) {
|
|
1032
1040
|
lineSegs.forEach(function (ls) {
|
|
@@ -1034,7 +1042,9 @@ export function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
1034
1042
|
molding: _objectSpread({}, moldingLines[i].molding),
|
|
1035
1043
|
doorStyle: moldingLines[i].doorStyle,
|
|
1036
1044
|
line: _toConsumableArray(ls),
|
|
1037
|
-
z: moldingLines[i].z
|
|
1045
|
+
z: moldingLines[i].z,
|
|
1046
|
+
parentId: moldingLines[i].parentId,
|
|
1047
|
+
inchWidth: moldingLines[i].inchWidth
|
|
1038
1048
|
});
|
|
1039
1049
|
});
|
|
1040
1050
|
}
|
|
@@ -1042,8 +1052,8 @@ export function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
1042
1052
|
}
|
|
1043
1053
|
},
|
|
1044
1054
|
_ret4;
|
|
1045
|
-
for (var
|
|
1046
|
-
_ret4 = _loop1(
|
|
1055
|
+
for (var _j = 0; _j < moldingLines.length; _j++) {
|
|
1056
|
+
_ret4 = _loop1(_j);
|
|
1047
1057
|
if (_ret4 === 0) continue;
|
|
1048
1058
|
if (_ret4 === 1) break;
|
|
1049
1059
|
}
|
|
@@ -1057,12 +1067,32 @@ export function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
1057
1067
|
});
|
|
1058
1068
|
});
|
|
1059
1069
|
if (newLines.length > 0) moldingLines = [].concat(_toConsumableArray(moldingLines), newLines);
|
|
1070
|
+
|
|
1071
|
+
// filter again for toe kick molding lines
|
|
1072
|
+
// only remain one line per toe kick molding item
|
|
1073
|
+
var duplicatedLineIdxs = [];
|
|
1074
|
+
for (var _i4 = 0; _i4 < moldingLines.length; _i4++) {
|
|
1075
|
+
var _iml$molding;
|
|
1076
|
+
if (duplicatedLineIdxs.includes(_i4)) continue;
|
|
1077
|
+
var iml = moldingLines[_i4];
|
|
1078
|
+
if (((_iml$molding = iml.molding) === null || _iml$molding === void 0 ? void 0 : _iml$molding.name) !== TOE_KICK_MOLDING) continue;
|
|
1079
|
+
for (var j = 0; j < moldingLines.length; j++) {
|
|
1080
|
+
if (_i4 === j) continue;
|
|
1081
|
+
var jml = moldingLines[j];
|
|
1082
|
+
if (jml.parentId === iml.parentId) duplicatedLineIdxs.push(j);
|
|
1083
|
+
}
|
|
1084
|
+
}
|
|
1085
|
+
moldingLines = moldingLines.filter(function (line, idx) {
|
|
1086
|
+
return !duplicatedLineIdxs.some(function (id) {
|
|
1087
|
+
return idx === id;
|
|
1088
|
+
});
|
|
1089
|
+
});
|
|
1060
1090
|
// console.log('moldingLines: ', moldingLines);
|
|
1061
1091
|
|
|
1062
1092
|
// make molding data with sorting molding & doorStyle
|
|
1063
1093
|
var _loop0 = function _loop0() {
|
|
1064
1094
|
var ml = moldingLines[k];
|
|
1065
|
-
var mlLength = convert(GeometryUtils.verticesDistance(ml.line[0], ml.line[1])).from('cm').to('in');
|
|
1095
|
+
var mlLength = ml.molding.name === TOE_KICK_MOLDING ? ml.inchWidth : convert(GeometryUtils.verticesDistance(ml.line[0], ml.line[1])).from('cm').to('in');
|
|
1066
1096
|
var idx = moldingData.findIndex(function (v) {
|
|
1067
1097
|
var _ml$molding, _v$doorStyle, _ml$doorStyle;
|
|
1068
1098
|
return (v === null || v === void 0 ? void 0 : v.name) === ((_ml$molding = ml.molding) === null || _ml$molding === void 0 ? void 0 : _ml$molding.name) && ((_v$doorStyle = v.doorStyle) === null || _v$doorStyle === void 0 ? void 0 : _v$doorStyle.id) === ((_ml$doorStyle = ml.doorStyle) === null || _ml$doorStyle === void 0 ? void 0 : _ml$doorStyle.id);
|
package/es/utils/ruler.js
CHANGED
package/lib/utils/molding.js
CHANGED
|
@@ -968,22 +968,26 @@ function createMonldingGroup(oldMG, layer, molding, catalog) {
|
|
|
968
968
|
return newMG;
|
|
969
969
|
}
|
|
970
970
|
function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
971
|
+
var _layer$items;
|
|
971
972
|
var moldingData = [];
|
|
972
|
-
var items = layer.items.toArray();
|
|
973
|
+
var items = layer === null || layer === void 0 || (_layer$items = layer.items) === null || _layer$items === void 0 ? void 0 : _layer$items.toArray();
|
|
973
974
|
var allLineRects = _export.GeometryUtils.buildRectFromLines(layer, _export.GeometryUtils.getAllLines(layer));
|
|
974
975
|
|
|
975
976
|
// get all molding line segments
|
|
976
977
|
var moldingLines = [];
|
|
977
|
-
items.forEach(function (item) {
|
|
978
|
+
items === null || items === void 0 || items.forEach(function (item) {
|
|
978
979
|
if (item.category === _constants.ITEM_TYPE.CABINET) {
|
|
979
|
-
var _item$molding;
|
|
980
|
+
var _item$properties$get$, _item$properties$get$2, _item$properties$get$3, _item$molding;
|
|
980
981
|
var MGlines = getLinesOfItem2(item, allLineRects, catalog); // exclude overlayed to wall
|
|
982
|
+
// id & width
|
|
983
|
+
var parentId = item.id;
|
|
984
|
+
var inchWidth = (0, _convertUnitsLite.convert)(item.properties.get('width').get('_length')).from((_item$properties$get$ = item.properties.get('width').get('_unit')) !== null && _item$properties$get$ !== void 0 ? _item$properties$get$ : 'in').to('in');
|
|
981
985
|
// z position of molding line
|
|
982
986
|
var z = item.properties.get('altitude').get('_length');
|
|
983
|
-
var zUnit = item.properties.get('altitude').get('_unit')
|
|
987
|
+
var zUnit = (_item$properties$get$2 = item.properties.get('altitude').get('_unit')) !== null && _item$properties$get$2 !== void 0 ? _item$properties$get$2 : 'in';
|
|
984
988
|
z = (0, _convertUnitsLite.convert)(z).from(zUnit).to('cm');
|
|
985
989
|
var h = item.properties.get('height').get('_length');
|
|
986
|
-
var hUnit = item.properties.get('height').get('_unit')
|
|
990
|
+
var hUnit = (_item$properties$get$3 = item.properties.get('height').get('_unit')) !== null && _item$properties$get$3 !== void 0 ? _item$properties$get$3 : 'in';
|
|
987
991
|
h = (0, _convertUnitsLite.convert)(h).from(hUnit).to('cm');
|
|
988
992
|
if (!(0, _helper.isEmpty)(item.molding) && isEnableItemForMolding(layer, item)) {
|
|
989
993
|
// calc normal molding line
|
|
@@ -1002,7 +1006,9 @@ function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
1002
1006
|
molding: _objectSpread({}, molding),
|
|
1003
1007
|
doorStyle: item.doorStyle.hasOwnProperty('id') ? item.doorStyle : !(0, _helper.isEmpty)(item.doorStyle) && item.doorStyle.toJS(),
|
|
1004
1008
|
line: line,
|
|
1005
|
-
z: lineZ
|
|
1009
|
+
z: lineZ,
|
|
1010
|
+
parentId: parentId,
|
|
1011
|
+
inchWidth: inchWidth
|
|
1006
1012
|
});
|
|
1007
1013
|
});
|
|
1008
1014
|
});
|
|
@@ -1022,7 +1028,9 @@ function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
1022
1028
|
},
|
|
1023
1029
|
doorStyle: item.doorStyle.hasOwnProperty('id') ? item.doorStyle : !(0, _helper.isEmpty)(item.doorStyle) && item.doorStyle.toJS(),
|
|
1024
1030
|
line: line,
|
|
1025
|
-
z: z
|
|
1031
|
+
z: z,
|
|
1032
|
+
parentId: parentId,
|
|
1033
|
+
inchWidth: inchWidth
|
|
1026
1034
|
});
|
|
1027
1035
|
});
|
|
1028
1036
|
}
|
|
@@ -1039,14 +1047,14 @@ function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
1039
1047
|
x2: moldingLines[i].line[1].x,
|
|
1040
1048
|
y2: moldingLines[i].line[1].y
|
|
1041
1049
|
};
|
|
1042
|
-
var _loop1 = function _loop1(
|
|
1043
|
-
if (i ===
|
|
1044
|
-
if (Math.abs(moldingLines[i].z - moldingLines[
|
|
1050
|
+
var _loop1 = function _loop1(_j) {
|
|
1051
|
+
if (i === _j) return 0; // continue
|
|
1052
|
+
if (Math.abs(moldingLines[i].z - moldingLines[_j].z) > _constants.EPSILON) return 0; // continue
|
|
1045
1053
|
var destLine = {
|
|
1046
|
-
x1: moldingLines[
|
|
1047
|
-
y1: moldingLines[
|
|
1048
|
-
x2: moldingLines[
|
|
1049
|
-
y2: moldingLines[
|
|
1054
|
+
x1: moldingLines[_j].line[0].x,
|
|
1055
|
+
y1: moldingLines[_j].line[0].y,
|
|
1056
|
+
x2: moldingLines[_j].line[1].x,
|
|
1057
|
+
y2: moldingLines[_j].line[1].y
|
|
1050
1058
|
};
|
|
1051
1059
|
var rst = _export.GeometryUtils.relationshipOfTwoOverlappedLines(srcLine, destLine);
|
|
1052
1060
|
if (rst.result === _constants.OVERLAP_SAME || rst.result === _constants.OVERLAP_INCLUDED) {
|
|
@@ -1055,7 +1063,7 @@ function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
1055
1063
|
} else if (rst.result === _constants.OVERLAP_SOME) {
|
|
1056
1064
|
removeLineIds.push(i);
|
|
1057
1065
|
var lineSegs = getTrimmedContourLineSegs(rst.trimmedSegs, moldingLines.filter(function (v, idx) {
|
|
1058
|
-
return idx !== i && idx !==
|
|
1066
|
+
return idx !== i && idx !== _j && Math.abs(v.z - moldingLines[i].z) < _constants.EPSILON;
|
|
1059
1067
|
}), 0);
|
|
1060
1068
|
if (lineSegs.length > 0) {
|
|
1061
1069
|
lineSegs.forEach(function (ls) {
|
|
@@ -1063,7 +1071,9 @@ function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
1063
1071
|
molding: _objectSpread({}, moldingLines[i].molding),
|
|
1064
1072
|
doorStyle: moldingLines[i].doorStyle,
|
|
1065
1073
|
line: (0, _toConsumableArray2["default"])(ls),
|
|
1066
|
-
z: moldingLines[i].z
|
|
1074
|
+
z: moldingLines[i].z,
|
|
1075
|
+
parentId: moldingLines[i].parentId,
|
|
1076
|
+
inchWidth: moldingLines[i].inchWidth
|
|
1067
1077
|
});
|
|
1068
1078
|
});
|
|
1069
1079
|
}
|
|
@@ -1071,8 +1081,8 @@ function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
1071
1081
|
}
|
|
1072
1082
|
},
|
|
1073
1083
|
_ret4;
|
|
1074
|
-
for (var
|
|
1075
|
-
_ret4 = _loop1(
|
|
1084
|
+
for (var _j = 0; _j < moldingLines.length; _j++) {
|
|
1085
|
+
_ret4 = _loop1(_j);
|
|
1076
1086
|
if (_ret4 === 0) continue;
|
|
1077
1087
|
if (_ret4 === 1) break;
|
|
1078
1088
|
}
|
|
@@ -1086,12 +1096,32 @@ function getMoldingDataOfScene2(layer, catalog, doorStyle) {
|
|
|
1086
1096
|
});
|
|
1087
1097
|
});
|
|
1088
1098
|
if (newLines.length > 0) moldingLines = [].concat((0, _toConsumableArray2["default"])(moldingLines), newLines);
|
|
1099
|
+
|
|
1100
|
+
// filter again for toe kick molding lines
|
|
1101
|
+
// only remain one line per toe kick molding item
|
|
1102
|
+
var duplicatedLineIdxs = [];
|
|
1103
|
+
for (var _i4 = 0; _i4 < moldingLines.length; _i4++) {
|
|
1104
|
+
var _iml$molding;
|
|
1105
|
+
if (duplicatedLineIdxs.includes(_i4)) continue;
|
|
1106
|
+
var iml = moldingLines[_i4];
|
|
1107
|
+
if (((_iml$molding = iml.molding) === null || _iml$molding === void 0 ? void 0 : _iml$molding.name) !== _constants.TOE_KICK_MOLDING) continue;
|
|
1108
|
+
for (var j = 0; j < moldingLines.length; j++) {
|
|
1109
|
+
if (_i4 === j) continue;
|
|
1110
|
+
var jml = moldingLines[j];
|
|
1111
|
+
if (jml.parentId === iml.parentId) duplicatedLineIdxs.push(j);
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1114
|
+
moldingLines = moldingLines.filter(function (line, idx) {
|
|
1115
|
+
return !duplicatedLineIdxs.some(function (id) {
|
|
1116
|
+
return idx === id;
|
|
1117
|
+
});
|
|
1118
|
+
});
|
|
1089
1119
|
// console.log('moldingLines: ', moldingLines);
|
|
1090
1120
|
|
|
1091
1121
|
// make molding data with sorting molding & doorStyle
|
|
1092
1122
|
var _loop0 = function _loop0() {
|
|
1093
1123
|
var ml = moldingLines[k];
|
|
1094
|
-
var mlLength = (0, _convertUnitsLite.convert)(_export.GeometryUtils.verticesDistance(ml.line[0], ml.line[1])).from('cm').to('in');
|
|
1124
|
+
var mlLength = ml.molding.name === _constants.TOE_KICK_MOLDING ? ml.inchWidth : (0, _convertUnitsLite.convert)(_export.GeometryUtils.verticesDistance(ml.line[0], ml.line[1])).from('cm').to('in');
|
|
1095
1125
|
var idx = moldingData.findIndex(function (v) {
|
|
1096
1126
|
var _ml$molding, _v$doorStyle, _ml$doorStyle;
|
|
1097
1127
|
return (v === null || v === void 0 ? void 0 : v.name) === ((_ml$molding = ml.molding) === null || _ml$molding === void 0 ? void 0 : _ml$molding.name) && ((_v$doorStyle = v.doorStyle) === null || _v$doorStyle === void 0 ? void 0 : _v$doorStyle.id) === ((_ml$doorStyle = ml.doorStyle) === null || _ml$doorStyle === void 0 ? void 0 : _ml$doorStyle.id);
|
package/lib/utils/ruler.js
CHANGED