fix: 自由路径上下偏移在位置解析统一应用

重构后真实物体走增量链、虚拟物体走平面链,都未应用 lift(仅兜底分支应用)。
改为在 Free 位置解析分支统一应用 ApplyGroundPathObjectLiftOffset,
各旋转/平移路径都使用带 lift 的起点位置。移除兜底分支重复应用。
257 单测全过
This commit is contained in:
tian 2026-08-01 12:35:48 +08:00
parent 8ae28463b7
commit c2f0bfbece

View File

@ -807,7 +807,8 @@ namespace NavisworksTransport.Core.Animation
Point3D startPosition = pathStartPoint;
if (_route.PathType == PathType.Free)
{
// 自由路径:路径点即物体几何中心,无需任何偏移
// 自由路径路径点即物体几何中心再叠加上下偏移lift
startPosition = ApplyGroundPathObjectLiftOffset(startPosition);
LogManager.Debug($"[移动到起点] 自由路径:路径点即物体中心=({startPosition.X:F2},{startPosition.Y:F2},{startPosition.Z:F2})");
}
else if (_route.PathType == PathType.Hoisting)
@ -959,7 +960,7 @@ namespace NavisworksTransport.Core.Animation
{
// 兜底:真实物体走纯增量链,虚拟物体走平面姿态链;
// 仅当两者都失败(如纯垂直路径)时保持当前姿态纯平移。
startPosition = ApplyGroundPathObjectLiftOffset(startPosition);
// startPosition 已在位置解析时应用过上下偏移,这里不再重复。
ApplyTrackedTranslationOnly(startPosition);
SyncTrackedRotationToDisplayedPose(CurrentControlledObject ?? _animatedObject);
_hasGroundRealObjectBasePose = false;