4.4 KiB
Orientation.ToVector() 调用审查列表
本文档列出了项目中调用 Orientation.ToVector() 的位置。
由于 Common.cs 中 Orientation.ToVector() 的当前实现返回的是局部 X 轴 ((1,0,0) @ Yaw=0, Pitch=0),而不是标准的局部 Z 轴(前向),
以下调用点可能基于错误的假设,需要进行审查和潜在的修改,以确保其行为符合预期或在未来将 Orientation 修正为 Z-Forward 约定后能够正确工作。
注意: Utils/ObscurationUtils.cs 中的调用已被修正以适应当前行为,因此未包含在此列表中。
-
文件:
ThreatSource/src/Jammer/LaserDecoy.cs- 行号: 98
- 代码:
Direction = Orientation.ToVector(), - 说明: 将
ToVector()结果作为Direction参数传递。需要确认接收方期望的是局部 X 轴还是标准的 Z 轴(前向)。
-
文件:
ThreatSource/src/Jammer/SmokeGrenade.cs- 行号: 83
- 代码:
Direction = Orientation.ToVector(), - 说明: 将
ToVector()结果作为干扰参数Direction传递。需要确认接收方期望的是局部 X 轴还是标准的 Z 轴。 - 行号: 318
- 代码:
Vector3D wallNormal = Orientation.ToVector(); - 说明: 将烟幕墙的法线定义为源的局部 X 轴。需要确认这是否是预期的几何定义。
- 行号: 416
- 代码:
double distAlongNormal = Math.Abs(Vector3D.DotProduct(relativePos, Orientation.ToVector())); - 说明: 计算点沿"法线"(定义的局部 X 轴)的距离。依赖于行 318 的定义。
- 行号: 423
- 代码:
Vector3D wallParallel = Vector3D.CrossProduct(Orientation.ToVector(), Vector3D.UnitY); - 说明: 计算平行于墙面的向量,使用了作为"法线"的局部 X 轴。依赖于行 318 的定义。
-
文件:
ThreatSource/src/Simulation/SimulationElement.cs- 行号: 63
- 代码:
Velocity = motionParameters.Orientation.ToVector() * motionParameters.InitialSpeed; - 说明: 极有可能错误地假设
ToVector()返回的是前进方向(局部 Z 轴)来计算初始速度。当前实现会导致物体初始速度指向其局部 X 轴。
-
文件:
ThreatSource/src/Guidance/MillimeterWaveGuidanceSystem.cs- 行号: 291
- 代码:
Direction = smokeGrenade.Orientation.ToVector(), - 说明: 将烟幕源的局部 X 轴作为方向参数传递(可能给
AtmosphereDllWrapper?)。需要确认接收方期望的向量定义。
-
文件:
ThreatSource/src/Guidance/InfraredImagingGuidanceSystem.cs- 行号: 288
- 代码:
Direction = smokeGrenade.Orientation.ToVector(), - 说明: 同上,将烟幕源的局部 X 轴作为方向参数传递。
-
文件:
ThreatSource/src/Missile/TerminalSensitiveSubmunition.cs- 行号: 620
- 代码:
Vector3D targetForward = target.Orientation.ToVector(); - 说明: 很可能错误地假设
ToVector()返回目标的前进方向(局部 Z 轴)。当前获取的是目标的局部 X 轴。影响后续命中逻辑。
-
文件:
ThreatSource/src/Missile/TerminalSensitiveMissile.cs- 行号: 271
- 代码:
Vector3D currentDirection = Orientation.ToVector(); - 说明: 很可能错误地假设
ToVector()返回导弹的前进方向(局部 Z 轴)。当前获取的是导弹的局部 X 轴。影响后续制导或状态更新。
-
文件:
ThreatSource/src/Guidance/LaserSemiActiveGuidanceSystem.cs- 行号: 348
- 代码:
Direction = smokeGrenade.Orientation.ToVector(), - 说明: 同上,将烟幕源的局部 X 轴作为方向参数传递。
-
文件:
ThreatSource/src/Utils/ObscurationUtils.cs- 行号: 120 (在
GetOrientationBasisVectors方法内部) - 代码:
Vector3D localX = orientation.ToVector().Normalize(); - 说明: 此处调用
ToVector()获取局部 X 轴。注意: 周围的GetOrientationBasisVectors方法的逻辑已被特别修正,以正确处理ToVector()返回局部 X 轴这一非标准行为。如果未来Orientation.ToVector()被修改为返回局部 Z 轴,此处的GetOrientationBasisVectors方法需要相应改回其原始(或更标准的)逻辑。
- 行号: 120 (在