mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-05 17:35:34 +08:00
Ref T429, functions for angle, heading and situation
* normalize angle -180/+180 when set on situation * clamp vector function
This commit is contained in:
@@ -49,7 +49,7 @@ namespace BlackMisc
|
||||
|
||||
CAircraftSituation::CAircraftSituation(const CCoordinateGeodetic &position, const CHeading &heading, const CAngle &pitch, const CAngle &bank, const CSpeed &gs, const CElevationPlane &groundElevation)
|
||||
: m_position(position), m_groundElevationPlane(groundElevation),
|
||||
m_heading(heading), m_pitch(pitch), m_bank(bank),
|
||||
m_heading(heading.normalizedToPlusMinus180Degrees()), m_pitch(pitch.normalizedToPlusMinus180Degrees()), m_bank(bank.normalizedToPlusMinus180Degrees()),
|
||||
m_groundSpeed(gs)
|
||||
{
|
||||
m_pressureAltitude = position.geodeticHeight().toPressureAltitude(CPressure(1013.25, CPressureUnit::mbar()));
|
||||
@@ -58,7 +58,7 @@ namespace BlackMisc
|
||||
CAircraftSituation::CAircraftSituation(const CCallsign &correspondingCallsign, const CCoordinateGeodetic &position, const CHeading &heading, const CAngle &pitch, const CAngle &bank, const CSpeed &gs, const CElevationPlane &groundElevation)
|
||||
: m_correspondingCallsign(correspondingCallsign),
|
||||
m_position(position), m_groundElevationPlane(groundElevation),
|
||||
m_heading(heading), m_pitch(pitch), m_bank(bank),
|
||||
m_heading(heading.normalizedToPlusMinus180Degrees()), m_pitch(pitch.normalizedToPlusMinus180Degrees()), m_bank(bank.normalizedToPlusMinus180Degrees()),
|
||||
m_groundSpeed(gs)
|
||||
{
|
||||
m_correspondingCallsign.setTypeHint(CCallsign::Aircraft);
|
||||
@@ -889,6 +889,11 @@ namespace BlackMisc
|
||||
return ag;
|
||||
}
|
||||
|
||||
void CAircraftSituation::setHeading(const CHeading &heading)
|
||||
{
|
||||
m_heading = heading.normalizedToPlusMinus180Degrees();
|
||||
}
|
||||
|
||||
const CLengthUnit &CAircraftSituation::getAltitudeOrDefaultUnit() const
|
||||
{
|
||||
if (this->getAltitude().isNull()) { return CAltitude::defaultUnit(); }
|
||||
@@ -989,6 +994,16 @@ namespace BlackMisc
|
||||
m_pressureAltitude = altitude;
|
||||
}
|
||||
|
||||
void CAircraftSituation::setPitch(const CAngle &pitch)
|
||||
{
|
||||
m_pitch = pitch.normalizedToPlusMinus180Degrees();
|
||||
}
|
||||
|
||||
void CAircraftSituation::setBank(const CAngle &bank)
|
||||
{
|
||||
m_bank = bank.normalizedToPlusMinus180Degrees();
|
||||
}
|
||||
|
||||
void CAircraftSituation::setZeroPBH()
|
||||
{
|
||||
static const CAngle za(0, CAngleUnit::deg());
|
||||
|
||||
Reference in New Issue
Block a user