mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-16 02:06:08 +08:00
Ref T709, normalize degrees to +/i180degs
This commit is contained in:
committed by
Mat Sutcliffe
parent
5e9be9e96e
commit
6be0586fbc
@@ -952,8 +952,10 @@ namespace XSwiftBus
|
|||||||
cameraPosition->x = static_cast<float>(lx + traffic->m_deltaCameraPosition.dx);
|
cameraPosition->x = static_cast<float>(lx + traffic->m_deltaCameraPosition.dx);
|
||||||
cameraPosition->y = static_cast<float>(ly + traffic->m_deltaCameraPosition.dy);
|
cameraPosition->y = static_cast<float>(ly + traffic->m_deltaCameraPosition.dy);
|
||||||
cameraPosition->z = static_cast<float>(lz + traffic->m_deltaCameraPosition.dz);
|
cameraPosition->z = static_cast<float>(lz + traffic->m_deltaCameraPosition.dz);
|
||||||
cameraPosition->pitch = static_cast<float>(traffic->m_deltaCameraPosition.pitch);
|
// cameraPosition->pitch = static_cast<float>(traffic->m_deltaCameraPosition.pitch);
|
||||||
cameraPosition->heading = static_cast<float>(traffic->m_deltaCameraPosition.heading);
|
// 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->roll = 0.0;
|
||||||
cameraPosition->zoom = 1.0;
|
cameraPosition->zoom = 1.0;
|
||||||
|
|
||||||
@@ -1032,6 +1034,20 @@ namespace XSwiftBus
|
|||||||
return true;
|
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)
|
bool CTraffic::isValidPosition(const XPMPPlanePosition_t &position)
|
||||||
{
|
{
|
||||||
if (!isPlusMinus180(position.lat)) { return false; }
|
if (!isPlusMinus180(position.lat)) { return false; }
|
||||||
|
|||||||
@@ -193,6 +193,11 @@ namespace XSwiftBus
|
|||||||
static bool isPlusMinus180(double v);
|
static bool isPlusMinus180(double v);
|
||||||
//! @}
|
//! @}
|
||||||
|
|
||||||
|
//! Normalize to (-180, 180] degress @{
|
||||||
|
static float normalizeToPlusMinus180DegF(float v);
|
||||||
|
static double normalizeToPlusMinus180DegD(double v);
|
||||||
|
//! @}
|
||||||
|
|
||||||
//! Check the position if values are valid @{
|
//! Check the position if values are valid @{
|
||||||
static bool isValidPosition(const XPMPPlanePosition_t &position);
|
static bool isValidPosition(const XPMPPlanePosition_t &position);
|
||||||
static bool isValidPosition(const XPLMCameraPosition_t *camPos);
|
static bool isValidPosition(const XPLMCameraPosition_t *camPos);
|
||||||
|
|||||||
Reference in New Issue
Block a user