diff --git a/src/Core/Animation/PathAnimationManager.cs b/src/Core/Animation/PathAnimationManager.cs index 1fb9408..61ba61c 100644 --- a/src/Core/Animation/PathAnimationManager.cs +++ b/src/Core/Animation/PathAnimationManager.cs @@ -558,9 +558,11 @@ namespace NavisworksTransport.Core.Animation /// private bool BoundingBoxesIntersectWithGap(BoundingBox3D box1, BoundingBox3D box2, double gap) { - return !(box1.Max.X + gap < box2.Min.X || box2.Max.X + gap < box1.Min.X || - box1.Max.Y + gap < box2.Min.Y || box2.Max.Y + gap < box1.Min.Y || - box1.Max.Z + gap < box2.Min.Z || box2.Max.Z + gap < box1.Min.Z); + // 标准AABB碰撞检测:三个轴向都要有重叠才算相交 + // gap参数将box1向外扩展(每边扩展gap),然后判断扩展后的box1是否与box2相交 + return box1.Max.X + gap >= box2.Min.X && box1.Min.X - gap <= box2.Max.X && + box1.Max.Y + gap >= box2.Min.Y && box1.Min.Y - gap <= box2.Max.Y && + box1.Max.Z + gap >= box2.Min.Z && box1.Min.Z - gap <= box2.Max.Z; } ///