Ref T709, normalize degrees to +/i180degs

This commit is contained in:
Klaus Basan
2019-07-31 19:17:51 +02:00
committed by Mat Sutcliffe
parent 2df218ff99
commit be261a2dd4
2 changed files with 23 additions and 2 deletions

View File

@@ -952,8 +952,10 @@ namespace XSwiftBus
cameraPosition->x = static_cast<float>(lx + traffic->m_deltaCameraPosition.dx);
cameraPosition->y = static_cast<float>(ly + traffic->m_deltaCameraPosition.dy);
cameraPosition->z = static_cast<float>(lz + traffic->m_deltaCameraPosition.dz);
cameraPosition->pitch = static_cast<float>(traffic->m_deltaCameraPosition.pitch);
cameraPosition->heading = static_cast<float>(traffic->m_deltaCameraPosition.heading);
// cameraPosition->pitch = static_cast<float>(traffic->m_deltaCameraPosition.pitch);
// cameraPosition->heading = static_cast<float>(traffic->m_deltaCameraPosition.heading);
cameraPosition->pitch = CTraffic::normalizeToPlusMinus180DegF(static_cast<float>(traffic->m_deltaCameraPosition.pitch));
cameraPosition->heading = CTraffic::normalizeToPlusMinus180DegF(static_cast<float>(traffic->m_deltaCameraPosition.heading));
cameraPosition->roll = 0.0;
cameraPosition->zoom = 1.0;
@@ -1032,6 +1034,20 @@ namespace XSwiftBus
return true;
}
float CTraffic::normalizeToPlusMinus180DegF(float v)
{
if (v > 180.0f) { return v - 360.0f;}
if (v <= -180.0f) { return v + 360.0f;}
return v;
}
double CTraffic::normalizeToPlusMinus180DegD(double v)
{
if (v > 180.0) { return v - 360.0;}
if (v <= -180.0) { return v + 360.0;}
return v;
}
bool CTraffic::isValidPosition(const XPMPPlanePosition_t &position)
{
if (!isPlusMinus180(position.lat)) { return false; }