fix: 自由路径上下偏移在位置解析统一应用
重构后真实物体走增量链、虚拟物体走平面链,都未应用 lift(仅兜底分支应用)。 改为在 Free 位置解析分支统一应用 ApplyGroundPathObjectLiftOffset, 各旋转/平移路径都使用带 lift 的起点位置。移除兜底分支重复应用。 257 单测全过
This commit is contained in:
parent
8ae28463b7
commit
c2f0bfbece
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user