@kimap/indoor-positioning-sdk-vue2 3.7.2 → 3.7.4

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/KimapCore.js +33 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kimap/indoor-positioning-sdk-vue2",
3
- "version": "3.7.2",
3
+ "version": "3.7.4",
4
4
  "description": "Vue2自包含室内定位SDK - 完全兼容Webpack3+Babel6 | Vue2 Self-Contained Indoor Positioning SDK",
5
5
  "main": "index.js",
6
6
  "files": [
package/src/KimapCore.js CHANGED
@@ -1496,11 +1496,39 @@ KimapSDK.prototype._loadSingleFurniture = function(furniture, serverUrl) {
1496
1496
  );
1497
1497
 
1498
1498
  // 应用缩放
1499
- obj.scale.set(
1500
- furniture.scale.x,
1501
- furniture.scale.y,
1502
- furniture.scale.z
1503
- );
1499
+ // 如果kidata包含targetSize,则计算归一化缩放
1500
+ if (furniture.targetSize) {
1501
+ // 计算模型的边界框
1502
+ var box = new THREE.Box3().setFromObject(obj);
1503
+ var size = new THREE.Vector3();
1504
+ box.getSize(size);
1505
+
1506
+ // 计算归一化缩放因子
1507
+ var scaleX = size.x > 0 ? furniture.targetSize.width / size.x : 1;
1508
+ var scaleY = size.y > 0 ? furniture.targetSize.height / size.y : 1;
1509
+ var scaleZ = size.z > 0 ? furniture.targetSize.depth / size.z : 1;
1510
+ var uniformScale = (scaleX + scaleY + scaleZ) / 3;
1511
+
1512
+ // 应用归一化缩放和用户缩放
1513
+ var finalScale = uniformScale * furniture.scale.x;
1514
+ obj.scale.set(finalScale, finalScale, finalScale);
1515
+
1516
+ console.log('🔧 家具模型缩放:', {
1517
+ type: furniture.type,
1518
+ originalSize: { x: size.x.toFixed(3), y: size.y.toFixed(3), z: size.z.toFixed(3) },
1519
+ targetSize: furniture.targetSize,
1520
+ uniformScale: uniformScale.toFixed(3),
1521
+ userScale: furniture.scale.x,
1522
+ finalScale: finalScale.toFixed(3)
1523
+ });
1524
+ } else {
1525
+ // 兼容旧版本kidata,直接使用scale值
1526
+ obj.scale.set(
1527
+ furniture.scale.x,
1528
+ furniture.scale.y,
1529
+ furniture.scale.z
1530
+ );
1531
+ }
1504
1532
 
1505
1533
  // 应用颜色(如果有)
1506
1534
  if (furniture.color) {