@kimap/indoor-positioning-sdk-vue2 5.0.2 → 5.1.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/package.json +1 -1
- package/src/KimapCore.browser.js +15 -16
- package/src/core/KimapSDK.js +9 -6
package/package.json
CHANGED
package/src/KimapCore.browser.js
CHANGED
|
@@ -2079,37 +2079,36 @@
|
|
|
2079
2079
|
function(obj) {
|
|
2080
2080
|
console.log('🔧 [家具模型加载] 开始处理:', furniture.type);
|
|
2081
2081
|
|
|
2082
|
-
// ========== 修复1: 分别计算X、Y、Z轴的缩放因子 ==========
|
|
2083
2082
|
// 计算模型的边界框
|
|
2084
2083
|
var box = new THREE.Box3().setFromObject(obj);
|
|
2085
2084
|
var size = new THREE.Vector3();
|
|
2086
2085
|
box.getSize(size);
|
|
2087
2086
|
|
|
2088
2087
|
// 目标尺寸(米)
|
|
2089
|
-
|
|
2090
|
-
var
|
|
2088
|
+
// 兼容旧数据:targetSize 可能缺失或单位异常,避免Y轴被异常拉伸
|
|
2089
|
+
var targetWidth = (furniture.targetSize && typeof furniture.targetSize.width === 'number') ? furniture.targetSize.width : size.x;
|
|
2090
|
+
var targetHeight = (furniture.targetSize && typeof furniture.targetSize.height === 'number') ? furniture.targetSize.height : size.y;
|
|
2091
|
+
var targetDepth = (furniture.targetSize && typeof furniture.targetSize.depth === 'number') ? furniture.targetSize.depth : size.z;
|
|
2091
2092
|
|
|
2092
|
-
//
|
|
2093
|
+
// 预览对齐策略:X/Z 按目标宽深分别缩放,Y 轴跟随 X 轴缩放(不使用 targetHeight)
|
|
2094
|
+
// 说明:绘制平台预览(src/utils/model3DLoader.ts)中 Y 轴使用与 X 轴一致的缩放,
|
|
2095
|
+
// 若 SDK 按 targetHeight 独立缩放 Y,会出现“导出后高度被拉伸/压扁”的视觉差异。
|
|
2093
2096
|
var scaleX = size.x > 0 ? targetWidth / size.x : 1;
|
|
2094
2097
|
var scaleZ = size.z > 0 ? targetDepth / size.z : 1;
|
|
2095
|
-
|
|
2096
|
-
// 与绘制平台保持一致:使用水平面(X/Z)缩放作为统一基准。
|
|
2097
|
-
// 避免Y轴受源模型包围盒差异影响,导致高度异常拉伸。
|
|
2098
|
-
var uniformScale = (scaleX + scaleZ) / 2;
|
|
2098
|
+
var scaleY = scaleX;
|
|
2099
2099
|
|
|
2100
2100
|
// 用户缩放兜底(兼容 scale 缺失或字段不完整)
|
|
2101
2101
|
var userScaleX = (furniture.scale && typeof furniture.scale.x === 'number') ? furniture.scale.x : 1;
|
|
2102
|
-
var userScaleY = (furniture.scale && typeof furniture.scale.y === 'number') ? furniture.scale.y :
|
|
2103
|
-
var userScaleZ = (furniture.scale && typeof furniture.scale.z === 'number') ? furniture.scale.z :
|
|
2102
|
+
var userScaleY = (furniture.scale && typeof furniture.scale.y === 'number') ? furniture.scale.y : 1;
|
|
2103
|
+
var userScaleZ = (furniture.scale && typeof furniture.scale.z === 'number') ? furniture.scale.z : 1;
|
|
2104
2104
|
|
|
2105
|
-
var finalScaleX =
|
|
2106
|
-
var finalScaleY =
|
|
2107
|
-
var finalScaleZ =
|
|
2105
|
+
var finalScaleX = scaleX * userScaleX;
|
|
2106
|
+
var finalScaleY = scaleY * userScaleY;
|
|
2107
|
+
var finalScaleZ = scaleZ * userScaleZ;
|
|
2108
2108
|
|
|
2109
2109
|
console.log('🔧 [家具缩放] 原始模型尺寸:', { x: size.x.toFixed(4), y: size.y.toFixed(4), z: size.z.toFixed(4) });
|
|
2110
|
-
console.log('🔧 [家具缩放] 目标尺寸:', { width: targetWidth.toFixed(4), depth: targetDepth.toFixed(4) });
|
|
2111
|
-
console.log('🔧 [家具缩放]
|
|
2112
|
-
console.log('🔧 [家具缩放] uniformScale(平均X和Z):', uniformScale.toFixed(4));
|
|
2110
|
+
console.log('🔧 [家具缩放] 目标尺寸:', { width: targetWidth.toFixed(4), height: targetHeight.toFixed(4), depth: targetDepth.toFixed(4) });
|
|
2111
|
+
console.log('🔧 [家具缩放] 轴向缩放因子:', { scaleX: scaleX.toFixed(4), scaleY: scaleY.toFixed(4), scaleZ: scaleZ.toFixed(4) });
|
|
2113
2112
|
console.log('🔧 [家具缩放] 用户缩放:', { x: userScaleX, y: userScaleY, z: userScaleZ });
|
|
2114
2113
|
console.log('🔧 [家具缩放] 最终缩放:', {
|
|
2115
2114
|
x: finalScaleX.toFixed(4),
|
package/src/core/KimapSDK.js
CHANGED
|
@@ -897,14 +897,17 @@ KimapSDK.prototype._loadSingleFurniture = function(furniture, serverUrl) {
|
|
|
897
897
|
box.getSize(size);
|
|
898
898
|
|
|
899
899
|
// 目标尺寸(米)
|
|
900
|
-
|
|
901
|
-
var
|
|
902
|
-
var
|
|
903
|
-
|
|
904
|
-
|
|
900
|
+
// 兼容旧数据:targetSize 可能缺失或单位异常,避免Y轴被异常拉伸
|
|
901
|
+
var targetWidth = (furniture.targetSize && typeof furniture.targetSize.width === 'number') ? furniture.targetSize.width : size.x;
|
|
902
|
+
var targetHeight = (furniture.targetSize && typeof furniture.targetSize.height === 'number') ? furniture.targetSize.height : size.y;
|
|
903
|
+
var targetDepth = (furniture.targetSize && typeof furniture.targetSize.depth === 'number') ? furniture.targetSize.depth : size.z;
|
|
904
|
+
|
|
905
|
+
// 预览对齐策略:X/Z 按目标宽深分别缩放,Y 轴跟随 X 轴缩放(不使用 targetHeight)
|
|
906
|
+
// 说明:绘制平台预览(src/utils/model3DLoader.ts)中 Y 轴使用与 X 轴一致的缩放,
|
|
907
|
+
// 若 SDK 按 targetHeight 独立缩放 Y,会出现“导出后高度被拉伸/压扁”的视觉差异。
|
|
905
908
|
var scaleX = size.x > 0 ? targetWidth / size.x : 1;
|
|
906
|
-
var scaleY = size.y > 0 ? targetHeight / size.y : 1;
|
|
907
909
|
var scaleZ = size.z > 0 ? targetDepth / size.z : 1;
|
|
910
|
+
var scaleY = scaleX;
|
|
908
911
|
|
|
909
912
|
// 用户缩放兜底(兼容 scale 缺失或字段不完整)
|
|
910
913
|
var userScaleX = (furniture.scale && typeof furniture.scale.x === 'number') ? furniture.scale.x : 1;
|