纠正先选物体时没记录原始尺寸的问题;清除物体时将角度修正值归零。
This commit is contained in:
parent
11f09faa13
commit
1047c82c66
@ -359,6 +359,21 @@ namespace NavisworksTransport.UI.WPF.ViewModels
|
||||
private double _objectOriginalWidth; // 物体原始宽度(Y方向)
|
||||
private double _objectOriginalHeight; // 物体原始高度(Z方向)
|
||||
|
||||
/// <summary>
|
||||
/// 物体原始长度(X方向,米)- 选择物体时保存,不受旋转影响
|
||||
/// </summary>
|
||||
public double ObjectOriginalLength => _objectOriginalLength;
|
||||
|
||||
/// <summary>
|
||||
/// 物体原始宽度(Y方向,米)- 选择物体时保存,不受旋转影响
|
||||
/// </summary>
|
||||
public double ObjectOriginalWidth => _objectOriginalWidth;
|
||||
|
||||
/// <summary>
|
||||
/// 物体原始高度(Z方向,米)- 选择物体时保存,不受旋转影响
|
||||
/// </summary>
|
||||
public double ObjectOriginalHeight => _objectOriginalHeight;
|
||||
|
||||
// 手工碰撞对象相关字段
|
||||
private bool _isManualCollisionTargetEnabled = true;
|
||||
private ObservableCollection<ManualCollisionTargetViewModel> _manualCollisionTargets;
|
||||
@ -1695,7 +1710,8 @@ namespace NavisworksTransport.UI.WPF.ViewModels
|
||||
// 只有选择不同的物体时,才重置角度修正值
|
||||
if (!isSameObject)
|
||||
{
|
||||
_pathAnimationManager?.SetObjectRotationCorrectionDirect(0.0);
|
||||
// 重置 ViewModel 中的角度修正值(会自动同步到 PathAnimationManager)
|
||||
ObjectRotationCorrection = 0.0;
|
||||
LogManager.Debug($"[选择物体] 已重置角度修正值为0度(新物体)");
|
||||
}
|
||||
else
|
||||
@ -2128,12 +2144,16 @@ namespace NavisworksTransport.UI.WPF.ViewModels
|
||||
LogManager.Info("已清除PathAnimationManager中的动画数据并归位物体");
|
||||
}
|
||||
|
||||
// 2. 重置属性
|
||||
// 2. 重置角度修正值为0
|
||||
ObjectRotationCorrection = 0.0;
|
||||
LogManager.Debug("[清除物体] 已重置角度修正值为0度");
|
||||
|
||||
// 3. 重置属性
|
||||
SelectedAnimatedObject = null;
|
||||
UpdateAnimatedObjectInfo();
|
||||
UpdateCanGenerateAnimation();
|
||||
|
||||
// 3. 清理高亮
|
||||
// 4. 清理高亮
|
||||
ModelHighlightHelper.ClearCollisionHighlights();
|
||||
|
||||
LogManager.Info("移动物体已完全清除并归位");
|
||||
@ -4907,6 +4927,10 @@ namespace NavisworksTransport.UI.WPF.ViewModels
|
||||
_pathAnimationManager.CancelAnimation();
|
||||
}
|
||||
|
||||
// 重置角度修正值为0
|
||||
ObjectRotationCorrection = 0.0;
|
||||
LogManager.Debug("[重置状态] 已重置角度修正值为0度");
|
||||
|
||||
// 清空选中对象
|
||||
SelectedAnimatedObject = null;
|
||||
SelectedAnimatedObjectName = string.Empty;
|
||||
|
||||
@ -2883,12 +2883,11 @@ namespace NavisworksTransport.UI.WPF.ViewModels
|
||||
}
|
||||
else if (animationVm.SelectedAnimatedObject != null)
|
||||
{
|
||||
// 使用选择物体的包围盒尺寸(模型单位)
|
||||
var bbox = animationVm.SelectedAnimatedObject.BoundingBox();
|
||||
objectLengthModel = bbox.Max.X - bbox.Min.X; // X方向 = 长度
|
||||
objectWidthModel = bbox.Max.Y - bbox.Min.Y; // Y方向 = 宽度
|
||||
objectHeightModel = bbox.Max.Z - bbox.Min.Z; // Z方向 = 高度
|
||||
LogManager.Debug($"[物体参数同步] 使用选择物体尺寸: {objectLengthModel / metersToUnits:F2}m x {objectWidthModel / metersToUnits:F2}m x {objectHeightModel / metersToUnits:F2}m");
|
||||
// 使用选择物体时保存的原始尺寸(米),不受旋转影响
|
||||
objectLengthModel = animationVm.ObjectOriginalLength * metersToUnits;
|
||||
objectWidthModel = animationVm.ObjectOriginalWidth * metersToUnits;
|
||||
objectHeightModel = animationVm.ObjectOriginalHeight * metersToUnits;
|
||||
LogManager.Debug($"[物体参数同步] 使用选择物体保存的原始尺寸: {animationVm.ObjectOriginalLength:F2}m x {animationVm.ObjectOriginalWidth:F2}m x {animationVm.ObjectOriginalHeight:F2}m");
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Loading…
Reference in New Issue
Block a user